不要再拿 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 语言毫无关系,再拿来作比较就有点牵强附会了。
17520 次点击
所在节点    Go 编程语言
102 条回复
fkdog
2021-09-12 16:26:52 +08:00
如果就谈业务逻辑的话,公司小、业务简单、架构不复杂,你用 go java php python ruby node 甚至 asp 都没问题。
如果业务复杂、人员多、流动性强、架构需求稳定,我觉得时间自然会说明一切,各大公司都会用脚投票选择什么语言。

前几年淘系的人很喜欢在网上布道 nodejs,nodejs 也的确是火了一阵。2021 nodejs 怕是基本已经萎缩成 webpack 、npm 一类的平台工具了。
littlewing
2021-09-12 17:14:41 +08:00
想要占领 C/C++也轮不到 Golang,Rust 还在排队等着呢
okampfer
2021-09-12 17:53:58 +08:00
@fkdog #41
确实,估计是尝试了一波 nodejs 之后,发现还是 Java 、Spring 最成熟。

话说现在“大前端”这个概念还火吗?
golangLover
2021-09-12 17:57:10 +08:00
@okampfer #43 你们觉得 node 缺了什么使得不如 spring. 有用上 ts 吗?
Keyes
2021-09-12 18:00:35 +08:00
锤子拧螺丝不好用->螺丝刀拧螺丝好用—>结论:锤子是垃圾->讨论为什么锤子不好用->既然有人用锤子拧螺丝为什么不能把锤子和螺丝刀比
witcherhope
2021-09-12 18:49:56 +08:00
Java 强大的是 JSR 那套社区规范,规范成就生态,尽量避免重复造轮子,即使重复造的轮子共用一套规范也能无缝切换。
chevalier
2021-09-12 19:03:18 +08:00
小孩子才争论语言优劣,成年人只选择赚钱多的语言
herozzm
2021-09-12 19:07:12 +08:00
web 选 java php 等
运维级,小工具,爬虫类,轻量级 api 选 golang
完事了
2kCS5c0b0ITXE5k2
2021-09-12 19:21:14 +08:00
起码 Golang 看起来没那么啰里啰唆.. Java 看起来真的太罗嗦了.
liuhan907
2021-09-12 19:22:23 +08:00
@Mohanson 那我觉得你很可能找不到适合的语言,主流语言里除了 Go 现在似乎没有不支持泛型的得了。
chenyu0532
2021-09-12 19:41:34 +08:00
哪个能赚到更多的钱用哪个,争论个毛线。
薪资才是王道
xuanbg
2021-09-12 19:54:17 +08:00
Java 也可以写得一点都不啰嗦。
dcoder
2021-09-12 23:16:15 +08:00
然而结果是, Go 就是在抢占 Java, Python, Ruby, Node 等等的市场
XIVN1987
2021-09-12 23:29:49 +08:00
Go 带 GC,,只能干 Java 的工作,,C/C++的工作 Go 干不了
icy37785
2021-09-12 23:53:14 +08:00
本来我并不觉得 Go 和 Java 有啥好放一起比较的
但是楼主从设计最初目的是对 C++ 的不满而认为,Go 应该是对标 C 和 C++。
那么楼主可以看看 Java 的设计目的,巧了,Java 的设计目的也是对 C 和 C++ 的不满,甚至不止是 Java,市面上大部分的语言设计之初都是因为出于对 C 和 C++ 的不满。
都是处于对 C 和 C++ 的不满设计出来的语言,互相之间比较一下也正常吧。
有人比就是因为两个语言在同一个使用场景之中出现了,你硬说两者毫无关系,感觉你的说法比较牵强。
w3cll
2021-09-13 00:04:22 +08:00
PHP:这个时候我声都不敢奏
wunonglin
2021-09-13 00:51:24 +08:00
@w3cll #56 PHP:“我始终是最好的语言”
westoy
2021-09-13 00:51:45 +08:00
然而 go 一直到 1.5 才支持编译成动态链接库
Jwyt
2021-09-13 01:05:19 +08:00
现阶段 go 对比的就是 java php 的传统后端语言吧
Rust 对比 c/c++更为合理一些
Hanggi
2021-09-13 07:33:11 +08:00
如果 Go 语言没有诞生现在大部分云原生项目( K8s...)可能就是 Java 写的,如果 Go 语言没有诞生 Docker 可能就是 Python 写的。
如果没有 Go 语言国内一些厂家( B 站,头条...)说不定就用 Java 做服务端语言了。

所以不要再拿 Golang 与 Java 作比较了,Go 跟 Java 毫无关系。
因为用了 Go 就没 Java 什么事了。

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

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

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

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

© 2021 V2EX