不要再拿 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 语言毫无关系,再拿来作比较就有点牵强附会了。
18422 次点击
所在节点    Go 编程语言
102 条回复
respawn
2021-09-13 08:01:57 +08:00
先抛开语言特性与语言生态层面,
单讲背后的 Google,Sun 和 Oracle,就必定会有故事,
并且你发的帖子里有 Golang 的几个时间点,有趣的是对应时间 Java 阵营都发生了些什么?
Google 缺少一种自家主导的主流编程语言,那时那刻那情形下 Golang 诞生,两者便避不开要被"比较".
paoqi2048
2021-09-13 08:23:09 +08:00
然而事实上就是 Go 已经在和 Java 交火……
sagaxu
2021-09-13 08:25:59 +08:00
@Hanggi 字节服务端招聘,Java 比 Go 多
lonenol
2021-09-13 09:17:26 +08:00
我总感觉是 go 的使用者在和 java 比较。。。
java 程序员都在专心 crud 。。
cocoabeans
2021-09-13 09:30:52 +08:00
能撼动 Java 地位的,只有生态和 Java 的新特性。
darknoll
2021-09-13 09:47:10 +08:00
我当初还想学 rust 呢,不比这个 java 强多了,最后还是学了 go,要吃饭啊
fox0001
2021-09-13 09:50:02 +08:00
纯粹语言之间的对比,确实没意思。但是考虑到需求、开发、部署等场景进行技术选型,为什么不能对比?

比如开发后端 api,可以选择 Java 、Go 、PHP 、Python 等等。要采用哪个语言,就要从各方面做对比吧?
qwerthhusn
2021-09-13 09:53:31 +08:00
别拿初衷说事,我的初衷还是瑟辉逐一接班人呢,
keepeye
2021-09-13 10:04:38 +08:00
go 写 crud 也很容易啊,为什么总有人说不适合呢?现成的 web 框架、orm 库直接拿来用就是了。
ylsc633
2021-09-13 10:05:21 +08:00
JAVA 天下无敌, 但是选择 go

语言很多, 就看你有没有决定权,决定在公司用什么语言进行开发, 每个人都有自己的考量

最近我在找工作,看了不少面试题

我发现了一个问题

Java 因为生态丰富,组件甚多, 所以,java 面试题很多都会在自己的圈子里卷, 不断的内卷,比如 java io, jvm 调优 等等, 更有甚者, 还得考 协议,网络,操作系统,算法,设计模式等等

而 go 语言,因为简单,生态不够丰富, 所以 go 语言的面试题 考自己本身的 很少, 无非 gmp, 切片,map, 锁机制,管道 这几项而已, 问的问题绝对不超过十分钟, 剩下的 就会问到 协议 网络 操作系统 算法, 基本没有考设计模式的

就面试这点, 越简单越好..
lancelock
2021-09-13 10:06:52 +08:00
go 都能吹开发快的吗
chouchoui
2021-09-13 10:08:13 +08:00
go 吹别往脸上贴金了
yamasa
2021-09-13 10:10:59 +08:00
go 替代 c 和 cpp,真是笑了
GaoYL
2021-09-13 10:15:41 +08:00
然而更多的 PHP 市场被 Go 取代了
jiayong2793
2021-09-13 10:16:53 +08:00
都是语言,为什么不能比较?
KaynW
2021-09-13 10:27:46 +08:00
如何获得流量?
微博: 男女撕逼
V 站: 语言圣战, 系统对比
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++的替代方案……”
siyehua
2021-09-13 10:30:01 +08:00
记得之前有句话:王老吉和加多宝打架,然后和其正消失了
qbhy
2021-09-13 10:30:39 +08:00
@GaoYL 这是一个悲伤的故事,神仙打架,凡人遭殃
liuyibao
2021-09-13 10:31:20 +08:00
用 Go 去取代 PHP 的很多都是小公司瞎折腾,你说你开发个 SAAS 系统为啥用 Go ? 平滑重启都没做? Panic 后进程都没了? SQL 你写原生 SQL? Gorm,xorm,xo? 真有 laravel 好用么? fpm+opcache 满足不了并发么? 你要是说换 Java 我倒啥都不想说了。

上面就是我看到一些小公司瞎折腾的结果,就像前几年折腾 nodejs 一样。你说你要是大公司有人力就算了,就那几个人还 BB 搞“微服务”

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

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

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

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

© 2021 V2EX