不要再拿 Golang 与 Java 作比较

2021-09-12 11:55:56 +08:00
 josephok
以下是我从《 Go 语言高级编程》一书中摘录的部分内容,简述了 Go 语言开发的初衷。

Go 语言最初由谷歌公司的 Robert Griesemer 、Ken Thompson 和 Rob Pike 这 3 位技术大咖于 2007 年开始设计发明,设计新语言的最初动力来自对超级复杂的 C++11 特性的吹捧报告的鄙视,最终的目标是设计网络和多核时代的 C 语言。到 2008 年中期,在语言的大部分特性设计已经完成并开始着手实现编译器和运行时,Russ Cox 作为主力开发者加入。到 2010 年,Go 语言已经逐步趋于稳定,并在 9 月正式发布并开源了代码。
Go 语言很多时候被描述为“类 C 语言”,或者“21 世纪的 C 语言”。从各种角度看,Go 语言确实是从 C 语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等诸多编程思想,并彻底继承和发扬了 C 语言简单直接的暴力编程哲学等。


从上面的描述可以看出,Go 语言的目标是占领一部分 c 和 c++的市场,和 Java 语言毫无关系,再拿来作比较就有点牵强附会了。
17621 次点击
所在节点    Go 编程语言
102 条回复
Bazingal
2021-09-12 12:01:06 +08:00
既然很多人拿 Go 做 web 业务,为什么不能比
Al0rid4l
2021-09-12 12:01:27 +08:00
初衷(指某种主观意愿而非客观事实
尽信书则不如...
wd
2021-09-12 12:02:46 +08:00
应该比不过 java
momowei
2021-09-12 12:03:49 +08:00
一般中小型 curd 应用 go 大概占用内存是多少
josephok
2021-09-12 12:06:55 +08:00
@Bazingal 做 Web 业务的又不是只有这 2 个语言,几乎所有的语言都可以拿来做 web 吧,语言做比较得看他们的相似性。
stimw
2021-09-12 12:08:12 +08:00
js 的设计初衷还是解决'简单'的网页互动呢...
python 的设计初衷是为了打发无聊的时间,继承 ABC...

初衷不能说明什么问题
SuperManNoPain
2021-09-12 12:08:53 +08:00
确实
josephok
2021-09-12 12:10:28 +08:00
@stimw 抛开初衷不讲,Go 语言更像 c 语言吧,除了使用 gc,就这点和 Java 类似,其他的地方好真没什么相似点。
echo1937
2021-09-12 12:12:56 +08:00
可能 Go 语言的目标是占领一部分 c 和 c++的市场,初衷是成为系统级编程语言,
https://www.imooc.com/read/87/article/2320

但实际上这个“系统级”慢慢从“(操作)系统级”变成了“平台系统级”,

到现在又变成了“应用系统级”,总体上是在往上层走,目标开始占领 Python 、Java 的一部分市场。
josephok
2021-09-12 12:16:59 +08:00
@echo1937 有 gc 的语言,操作系统级不太可能,平台系统级我是赞成的,但写业务应用还真不是 Go 的强项,有这需求就用 Java 去了。
echo1937
2021-09-12 12:20:54 +08:00
@josephok #10 我也认同你的看法,但是社区里最多的就是 中小型开源 Web 应用二次开发者,自然有大量的人拿来写业务。GO 最合适的场景应该是用来写“平台系统级”的中间件。
Mohanson
2021-09-12 12:22:32 +08:00
网络和多核的 c, 一种文艺复兴,go 的流行是有相当大一部分开发者已经无法忍受无穷无尽的语法糖,封装,特性和黑魔法而选择直接用 c 的思想去开发应用,less is more, 另外我坚决反对泛型,如果 1.18 后 go 像 rust 那样出现滥用泛型的趋势会考虑选择新的语言
ahmcsxcc
2021-09-12 12:22:49 +08:00
感觉没多少人从 c/c++转到 go

大部分都是从 python,php,java 转的
Jooooooooo
2021-09-12 12:29:36 +08:00
谁在用 c 写服务端后台啊?
hronro
2021-09-12 12:39:45 +08:00
除了历史遗留项目,现在哪家公司在用 C/C++ 写 web 后端?用 Go 来写的公司却有很多。所以为啥不能和 Java 比?
charlie21
2021-09-12 12:42:07 +08:00
大胆一点。golang 带来的革命性 ... 编程语言就是工具 ...

屠刀也是工具 那么要图图谁呢 这掌握在拿工具的人的头脑里,不掌握在被图图的人的手里
josephok
2021-09-12 12:51:17 +08:00
@hronro go 并不适合写 web 应用,更适合写平台系统级的中间件,你可以看我的回复。
hronro
2021-09-12 12:53:49 +08:00
你觉得不合适,可还是有公司这么干了。所以有人拿来比较也是很正常的
janus77
2021-09-12 12:55:36 +08:00
之前看到过一句话 java 的最大优势就是让良莠不齐的人也能写出差不多的代码 这是作为企业级开发无可替代的 能大大降低你的成本。其他的一切都是围绕这个点展开的 无论是完善的生态 还是各种各样的设计模式、架构和范式。
至于对比之下的那些缺点 比如速度慢 编译慢、工具链复杂 优化有限 不够优雅 这些差距再大也不至于让一整个团队乃至公司切换语言 反而会因为越来越完善的生态 说不定某个框架的版本号改一下就可以缩小。
EPr2hh6LADQWqRVH
2021-09-12 12:56:14 +08:00
毕竟 21 世纪 PHP

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801337

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX