1
Bazingal 2021-09-12 12:01:06 +08:00 28
既然很多人拿 Go 做 web 业务,为什么不能比
|
2
Al0rid4l 2021-09-12 12:01:27 +08:00
初衷(指某种主观意愿而非客观事实
尽信书则不如... |
3
wd 2021-09-12 12:02:46 +08:00 via iPhone 1
应该比不过 java
|
4
momowei 2021-09-12 12:03:49 +08:00
一般中小型 curd 应用 go 大概占用内存是多少
|
5
josephok OP @Bazingal 做 Web 业务的又不是只有这 2 个语言,几乎所有的语言都可以拿来做 web 吧,语言做比较得看他们的相似性。
|
6
stimw 2021-09-12 12:08:12 +08:00 via Android 16
js 的设计初衷还是解决'简单'的网页互动呢...
python 的设计初衷是为了打发无聊的时间,继承 ABC... 初衷不能说明什么问题 |
7
SuperManNoPain 2021-09-12 12:08:53 +08:00
确实
|
8
josephok OP @stimw 抛开初衷不讲,Go 语言更像 c 语言吧,除了使用 gc,就这点和 Java 类似,其他的地方好真没什么相似点。
|
9
echo1937 2021-09-12 12:12:56 +08:00
可能 Go 语言的目标是占领一部分 c 和 c++的市场,初衷是成为系统级编程语言,
https://www.imooc.com/read/87/article/2320 但实际上这个“系统级”慢慢从“(操作)系统级”变成了“平台系统级”, 到现在又变成了“应用系统级”,总体上是在往上层走,目标开始占领 Python 、Java 的一部分市场。 |
10
josephok OP @echo1937 有 gc 的语言,操作系统级不太可能,平台系统级我是赞成的,但写业务应用还真不是 Go 的强项,有这需求就用 Java 去了。
|
11
echo1937 2021-09-12 12:20:54 +08:00
@josephok #10 我也认同你的看法,但是社区里最多的就是 中小型开源 Web 应用二次开发者,自然有大量的人拿来写业务。GO 最合适的场景应该是用来写“平台系统级”的中间件。
|
12
Mohanson 2021-09-12 12:22:32 +08:00 via Android 1
网络和多核的 c, 一种文艺复兴,go 的流行是有相当大一部分开发者已经无法忍受无穷无尽的语法糖,封装,特性和黑魔法而选择直接用 c 的思想去开发应用,less is more, 另外我坚决反对泛型,如果 1.18 后 go 像 rust 那样出现滥用泛型的趋势会考虑选择新的语言
|
13
ahmcsxcc 2021-09-12 12:22:49 +08:00
感觉没多少人从 c/c++转到 go
大部分都是从 python,php,java 转的 |
14
Jooooooooo 2021-09-12 12:29:36 +08:00
谁在用 c 写服务端后台啊?
|
15
hronro 2021-09-12 12:39:45 +08:00 via iPhone
除了历史遗留项目,现在哪家公司在用 C/C++ 写 web 后端?用 Go 来写的公司却有很多。所以为啥不能和 Java 比?
|
16
charlie21 2021-09-12 12:42:07 +08:00
大胆一点。golang 带来的革命性 ... 编程语言就是工具 ...
屠刀也是工具 那么要图图谁呢 这掌握在拿工具的人的头脑里,不掌握在被图图的人的手里 |
17
josephok OP @hronro go 并不适合写 web 应用,更适合写平台系统级的中间件,你可以看我的回复。
|
18
hronro 2021-09-12 12:53:49 +08:00 via iPhone
你觉得不合适,可还是有公司这么干了。所以有人拿来比较也是很正常的
|
19
janus77 2021-09-12 12:55:36 +08:00
之前看到过一句话 java 的最大优势就是让良莠不齐的人也能写出差不多的代码 这是作为企业级开发无可替代的 能大大降低你的成本。其他的一切都是围绕这个点展开的 无论是完善的生态 还是各种各样的设计模式、架构和范式。
至于对比之下的那些缺点 比如速度慢 编译慢、工具链复杂 优化有限 不够优雅 这些差距再大也不至于让一整个团队乃至公司切换语言 反而会因为越来越完善的生态 说不定某个框架的版本号改一下就可以缩小。 |
20
EPr2hh6LADQWqRVH 2021-09-12 12:56:14 +08:00
毕竟 21 世纪 PHP
|
21
TypeError 2021-09-12 12:57:30 +08:00 via Android
@Mohanson 什么叫滥用泛型,go 的泛型提案看起来还是蛮简单的吧,不像其他语言还要纠结什么逆变协变
|
22
aloxaf 2021-09-12 12:57:39 +08:00 2
我觉得你误解了上面那段话
「设计网络和多核时代的 C 语言」不代表对标 C 语言,更多的是表达希望在网络时代取得 C 语言在「旧时代」(姑且这么称呼)的地位 真和 C/C++ 语言对标那不自找没趣吗,请问 Go 占领了多少 C/C++ 的市场? |
23
fiypig 2021-09-12 12:58:14 +08:00 via iPhone
哈哈哈,有点 PHP 的意思了,反正我全部语言就喜欢 go,但 Java 是我未完成的梦,我尊敬 Java 。
|
24
zjsxwc 2021-09-12 13:02:53 +08:00 via Android
不要再拿 Java 与 PHP 作比较了,PHP 毫无疑问是目前主流语言中写业务是最快的。
|
25
limbo0 2021-09-12 13:27:49 +08:00
主要还是生态的问题, 语言从来不是问题
|
26
iseki 2021-09-12 13:31:49 +08:00 via Android
确实,Go 取代的应该是某些场景下的 C,而不是动不动就搞 CURD 的 Web
|
28
WhoMercy 2021-09-12 13:41:14 +08:00
不成熟的一点见解,两者在 web 开发的比较,
Go 的优势是快,运行快、开发快、控制力强 Java 的优势是稳,性能稳、架构稳、工具多、黑盒多、设计多 至于两者的优劣对比嘛。。。 倒不如说是根据开发人员来做选择, 老手开发的新项目、短期项目可以考虑 Go, 新手但又需要长时间迭代开发、复杂功能多可以准备 Java 如果有不同意见默认你对:-) |
29
Cbdy 2021-09-12 13:47:05 +08:00 2
巧了,Java 的目标也是占领一部分 C++的市场
|
30
danc 2021-09-12 13:58:21 +08:00
为啥要比???比也是 Javaer 在比,正经的 Gör,眼里没有 Java 的,目中无人的那种状态,懂吧
|
31
h280254082 2021-09-12 14:01:32 +08:00
@aloxaf 实际运用中还是占了不少的。。。比如大厂里面 C/C++的腾讯转了大量的 Go 吧
|
32
wangxn 2021-09-12 14:04:22 +08:00
@aloxaf 至少在 Docker 这种云计算场景,和区块链场景,它是确确实实侵蚀了一部分 C/C++ 的应用场景。
比特币的代码是 C++,但新的山寨币几乎没有是用 C++ 实现的,基本都是 Go 和 Rust 。 |
34
ke1e 2021-09-12 14:26:28 +08:00
带 GC 的语言,怎么可能替代 c,Rust 还差不多
|
35
cnbattle 2021-09-12 14:26:31 +08:00
lz 能发出这样的内容,说明自己已经比较过了,那为啥也不用别人的比较,有点迷 0.0
|
37
6IbA2bj5ip3tK49j 2021-09-12 15:21:34 +08:00 8
分享分辨 Go 吹的一个方法:声称 Go Web 开发快。
要么压根没写过 Go,要么只写过 Go 。 |
38
x940727 2021-09-12 15:26:51 +08:00 6
其实大部分用 Go 写 Web 的,都是 Java 卷不动去卷 Go 了,认为自己用 Go 就能和大神一样的起跑线(因为 Java 大神太多了,起步就晚了)。
|
39
Zien 2021-09-12 15:54:23 +08:00
因为应用,才会比较。
谁管你初衷是什么。。。 |
40
Froyo9 2021-09-12 15:56:40 +08:00
go web 开发感觉还是挺好的呀
|
41
fkdog 2021-09-12 16:26:52 +08:00
如果就谈业务逻辑的话,公司小、业务简单、架构不复杂,你用 go java php python ruby node 甚至 asp 都没问题。
如果业务复杂、人员多、流动性强、架构需求稳定,我觉得时间自然会说明一切,各大公司都会用脚投票选择什么语言。 前几年淘系的人很喜欢在网上布道 nodejs,nodejs 也的确是火了一阵。2021 nodejs 怕是基本已经萎缩成 webpack 、npm 一类的平台工具了。 |
42
littlewing 2021-09-12 17:14:41 +08:00
想要占领 C/C++也轮不到 Golang,Rust 还在排队等着呢
|
43
okampfer 2021-09-12 17:53:58 +08:00
|
44
golangLover 2021-09-12 17:57:10 +08:00 via Android
@okampfer #43 你们觉得 node 缺了什么使得不如 spring. 有用上 ts 吗?
|
45
Keyes 2021-09-12 18:00:35 +08:00 via iPhone
锤子拧螺丝不好用->螺丝刀拧螺丝好用—>结论:锤子是垃圾->讨论为什么锤子不好用->既然有人用锤子拧螺丝为什么不能把锤子和螺丝刀比
|
46
witcherhope 2021-09-12 18:49:56 +08:00 via iPhone
Java 强大的是 JSR 那套社区规范,规范成就生态,尽量避免重复造轮子,即使重复造的轮子共用一套规范也能无缝切换。
|
47
chevalier 2021-09-12 19:03:18 +08:00
小孩子才争论语言优劣,成年人只选择赚钱多的语言
|
48
herozzm 2021-09-12 19:07:12 +08:00
web 选 java php 等
运维级,小工具,爬虫类,轻量级 api 选 golang 完事了 |
49
2kCS5c0b0ITXE5k2 2021-09-12 19:21:14 +08:00
起码 Golang 看起来没那么啰里啰唆.. Java 看起来真的太罗嗦了.
|
51
chenyu0532 2021-09-12 19:41:34 +08:00
哪个能赚到更多的钱用哪个,争论个毛线。
薪资才是王道 |
52
xuanbg 2021-09-12 19:54:17 +08:00 1
Java 也可以写得一点都不啰嗦。
|
53
dcoder 2021-09-12 23:16:15 +08:00
然而结果是, Go 就是在抢占 Java, Python, Ruby, Node 等等的市场
|
54
XIVN1987 2021-09-12 23:29:49 +08:00
Go 带 GC,,只能干 Java 的工作,,C/C++的工作 Go 干不了
|
55
icy37785 2021-09-12 23:53:14 +08:00
本来我并不觉得 Go 和 Java 有啥好放一起比较的
但是楼主从设计最初目的是对 C++ 的不满而认为,Go 应该是对标 C 和 C++。 那么楼主可以看看 Java 的设计目的,巧了,Java 的设计目的也是对 C 和 C++ 的不满,甚至不止是 Java,市面上大部分的语言设计之初都是因为出于对 C 和 C++ 的不满。 都是处于对 C 和 C++ 的不满设计出来的语言,互相之间比较一下也正常吧。 有人比就是因为两个语言在同一个使用场景之中出现了,你硬说两者毫无关系,感觉你的说法比较牵强。 |
56
w3cll 2021-09-13 00:04:22 +08:00 4
PHP:这个时候我声都不敢奏
|
58
westoy 2021-09-13 00:51:45 +08:00
然而 go 一直到 1.5 才支持编译成动态链接库
|
59
Jwyt 2021-09-13 01:05:19 +08:00
现阶段 go 对比的就是 java php 的传统后端语言吧
Rust 对比 c/c++更为合理一些 |
60
Hanggi 2021-09-13 07:33:11 +08:00
如果 Go 语言没有诞生现在大部分云原生项目( K8s...)可能就是 Java 写的,如果 Go 语言没有诞生 Docker 可能就是 Python 写的。
如果没有 Go 语言国内一些厂家( B 站,头条...)说不定就用 Java 做服务端语言了。 所以不要再拿 Golang 与 Java 作比较了,Go 跟 Java 毫无关系。 因为用了 Go 就没 Java 什么事了。 |
61
respawn 2021-09-13 08:01:57 +08:00 1
先抛开语言特性与语言生态层面,
单讲背后的 Google,Sun 和 Oracle,就必定会有故事, 并且你发的帖子里有 Golang 的几个时间点,有趣的是对应时间 Java 阵营都发生了些什么? Google 缺少一种自家主导的主流编程语言,那时那刻那情形下 Golang 诞生,两者便避不开要被"比较". |
62
paoqi2048 2021-09-13 08:23:09 +08:00
然而事实上就是 Go 已经在和 Java 交火……
|
64
lonenol 2021-09-13 09:17:26 +08:00
我总感觉是 go 的使用者在和 java 比较。。。
java 程序员都在专心 crud 。。 |
65
cocoabeans 2021-09-13 09:30:52 +08:00
能撼动 Java 地位的,只有生态和 Java 的新特性。
|
66
darknoll 2021-09-13 09:47:10 +08:00
我当初还想学 rust 呢,不比这个 java 强多了,最后还是学了 go,要吃饭啊
|
67
fox0001 2021-09-13 09:50:02 +08:00 via Android
纯粹语言之间的对比,确实没意思。但是考虑到需求、开发、部署等场景进行技术选型,为什么不能对比?
比如开发后端 api,可以选择 Java 、Go 、PHP 、Python 等等。要采用哪个语言,就要从各方面做对比吧? |
68
qwerthhusn 2021-09-13 09:53:31 +08:00
别拿初衷说事,我的初衷还是瑟辉逐一接班人呢,
|
69
keepeye 2021-09-13 10:04:38 +08:00
go 写 crud 也很容易啊,为什么总有人说不适合呢?现成的 web 框架、orm 库直接拿来用就是了。
|
70
ylsc633 2021-09-13 10:05:21 +08:00
JAVA 天下无敌, 但是选择 go
语言很多, 就看你有没有决定权,决定在公司用什么语言进行开发, 每个人都有自己的考量 最近我在找工作,看了不少面试题 我发现了一个问题 Java 因为生态丰富,组件甚多, 所以,java 面试题很多都会在自己的圈子里卷, 不断的内卷,比如 java io, jvm 调优 等等, 更有甚者, 还得考 协议,网络,操作系统,算法,设计模式等等 而 go 语言,因为简单,生态不够丰富, 所以 go 语言的面试题 考自己本身的 很少, 无非 gmp, 切片,map, 锁机制,管道 这几项而已, 问的问题绝对不超过十分钟, 剩下的 就会问到 协议 网络 操作系统 算法, 基本没有考设计模式的 就面试这点, 越简单越好.. |
71
lancelock 2021-09-13 10:06:52 +08:00
go 都能吹开发快的吗
|
72
chouchoui 2021-09-13 10:08:13 +08:00
go 吹别往脸上贴金了
|
73
yamasa 2021-09-13 10:10:59 +08:00
go 替代 c 和 cpp,真是笑了
|
74
GaoYL 2021-09-13 10:15:41 +08:00
然而更多的 PHP 市场被 Go 取代了
|
75
jiayong2793 2021-09-13 10:16:53 +08:00
都是语言,为什么不能比较?
|
76
KaynW 2021-09-13 10:27:46 +08:00
如何获得流量?
微博: 男女撕逼 V 站: 语言圣战, 系统对比 |
77
beexu 2021-09-13 10:27:55 +08:00
替代也是事实。“Java 把 C/C++从业务逻辑的领域彻底赶出去了,而在中间件控制逻辑的领域,Java 也把 C/C++也赶到了还有一丝需要高性能的地方,然而 Go 语言的进入,带着 Docker 和 K8s 的云原生的大旗,把 C/C++在高性能中间件的这一块领域也吞噬的所剩无几了。C/C++被赶到了最后一块阵地——系统底层。然而,Rust 的出现可能要把最后这一块 C/C++还有存在感的地方也要收走——Linux 内核开始支持 Rust 了,而且 Android 项目指定 Rust 成为 C/C++的替代方案……”
|
78
siyehua 2021-09-13 10:30:01 +08:00
记得之前有句话:王老吉和加多宝打架,然后和其正消失了
|
80
liuyibao 2021-09-13 10:31:20 +08:00 5
用 Go 去取代 PHP 的很多都是小公司瞎折腾,你说你开发个 SAAS 系统为啥用 Go ? 平滑重启都没做? Panic 后进程都没了? SQL 你写原生 SQL? Gorm,xorm,xo? 真有 laravel 好用么? fpm+opcache 满足不了并发么? 你要是说换 Java 我倒啥都不想说了。
上面就是我看到一些小公司瞎折腾的结果,就像前几年折腾 nodejs 一样。你说你要是大公司有人力就算了,就那几个人还 BB 搞“微服务” |
83
MoYi123 2021-09-13 10:39:36 +08:00
我最喜欢的 if err!=nil 环节怎么还没开始
|
84
Torpedo 2021-09-13 10:41:22 +08:00
说白了,选 java 和选 go 的基本是两种人。
go 的市场基本是吃掉了 python 和 php 的。毕竟 php 太随意,py 性能有瓶颈 |
85
dinfeo 2021-09-13 10:45:00 +08:00 1
个人认为 Go 语言的特性,其实更适合做工业嵌入式这块这块,毕竟下位机大部分都是用 C 或者 C++写的,Go 语言去构建边缘计算、工业网关我觉得比 python 、java 更适合
但不知道为啥大家都用来对标 java 做后台? 可能是个人小型项目或者中间件之类的用 Go 可能更好,但是多人大型项目和企业级的业务平台用 Go 似乎不是个好选择。 前端要做后台,搞了 node.js 系统、嵌入式要做后台,搞了 go 写算法的要做后台,搞了 python = =为啥所有语言发明了都要用来写后台服务? |
86
Rooger 2021-09-13 10:45:21 +08:00
大学毕业前选择培训,C++ 或者 Java,我选择了 C++,进入的公司我也是极其幸运,做的是游戏服务端,工作四年后,回老家西安进入另外一家公司负责游戏后端工作。但是在西安的确招不到合适的 C++ 职位,即使是毕业生也很难招到,而且即使招到了,C++ 的开发效率不高。如今我们已经全面使用 Go 语言了,开发效率相比 C++ 肯定是提升很大的,Java 从来没有在工作中遇到过,不做评价。如今 Go 用了三年,我又想换成 Rust 了。生命不息,折腾不止。
|
87
araraloren 2021-09-13 10:58:28 +08:00
@dinfeo 因为有 GC.. 怎么嵌?
|
88
fovecifer 2021-09-13 11:01:00 +08:00 1
我觉得楼主的阅读理解能力稍微有点问题
|
89
yuchenyang1994 2021-09-13 11:01:45 +08:00
两个语言都写过,现在在写 go,我就随便说说了。
1. 有关 go 与 java 的比较 首先,u1s1,从语言设计上,go 其实是开历史倒车的,java 基本没啥大毛病,所以如果单论语言本身的话,java 是比 go 好的,这毋庸置疑。 2. 为啥 go 跟 java 交火 首先,现在 go 开始慢慢动了 java 的部分利益了,很多公司业务开发都转向 go,势必有反弹啊。这很正常 3. go 这么破为啥不用 java 这就有得说了,80% java 的特性大部分都被人滥用,还有莫名其妙的设计,譬如 xml,又比如说繁琐的设计模式,没了 idea,写代码都困难,与其大部分人用不明白,不如用 go 了,就这么简单。问 go 哪里强了,就是简单,一共 24 个关键字。就比如搞多线程吧,就算写的再烂,go 也不会出太大篓子。java 就不一样了,经常陷入 to be or not to be 的问题 |
90
James369 2021-09-13 11:05:06 +08:00
Go 其实就是想蹭一蹭 Java 的热度,提高下自己的知名度。
|
91
cassyfar 2021-09-13 11:06:39 +08:00
go 只是继承了许多 c 和 cpp 的优点。最重要的一点,个人觉得,不盲目迷恋 oop,另外对多线程支持非常好。特别适合现在微服务,分布式的格局。易上手,出活快,对码农本身素质要求比 java 或 cpp 低了太多。
所以目前蚕食了很多微服务的市场,经典就是 go + protobuf 写 rpc service 。但是 go 无法取代 java + spring,go 也无法取代任何对性能要求极高的部件,比如 load balancer 。 |
92
southsala 2021-09-13 11:14:54 +08:00
然后抢了 PHP 的饭碗
|
93
Mac 2021-09-13 14:33:34 +08:00
PHP 表示你们先抢,我再躺会儿
|
94
Akiya 2021-09-13 14:55:58 +08:00
你说的没错,应该拿 C#比
|
95
YvesX 2021-09-14 00:17:02 +08:00
要把 Zen of Python 当场 import 出来大再表演一次才知道这种初衷是什么含金量吗
|
97
byte10 2021-09-14 10:31:21 +08:00
@Bazingal 因为很多蠢猪头强行写 web,其实不是特别适合写业务,python,nodejs, php 都适合。java 也适合。go 相对这几个语言没有太多的优势。
@Jooooooooo 所以类似 C 语言的 go 语言不应该去写服务端后台,写业务不太适合 @zjsxwc 但是不稳,容易乱。虽然 java 也容易乱。 @x940727 这个跟 php 一样,跟 nodejs 一样,因为入门简单,随手就可以写一套系统,所以喜欢它。 @fkdog 赞同。我还是挺喜欢 nodejs,写的点玩具简直不要太爽。go 也是不错,单独部署无依赖 也是更爽的。 @golangLover 应该是生态比不上 java,不是 TS 比不上 java,既然都用 TS 了,我为啥不直接上 java,一样啰嗦。 @herozzm 是的,go nodejs 都适合写轮子,写轮子成就高,所以大部分人都喜欢 go,我也是 nodejs 。 |
99
Rorysky 2021-09-14 15:43:46 +08:00
再添加个 游戏开发领域 C#; 游戏服务器 c++
|
100
lfzyx 2021-09-14 20:23:37 +08:00
java 快入土为安了,是没有啥可比的
|