写了一段时间 Golang,我很纳闷,为啥 Golang 这么火

2022-05-25 19:44:45 +08:00
 sampeng

我唯一能想到的是可以换个赛道卷。 要啥没啥。。都得自己撸。。而且因为没有标准,就是完全随心所欲的写。写成什么样是什么样。除了简单,就没啥优点了。问题是太简单了,跟自动挡和手动挡之间的区别一样。看看别人实现的一些例子是很简单,但你要真的是可以用的。代码要膨胀十倍。个人感觉 golang 是把代码工程的问题交给了程序员去处理,程序员需要很大的心智去维护工程问题。。。

随便看了几个开源项目的代码,因为很多特性没有。就是各种写死。各种模版代码。。。。 别扯运行速度快。。这是优点但真不是绝对优点。谁天天写高并发代码?全世界项目都是百万级并发?

我知道存在即合理,但我真的没看出来 golang 有什么特别的亮点够他这么火。当初 php 是因为撸 web 快,现在是因为人人要撸百万级并发项目么?真的。。rust 都比他强。最少 rust 的工程性实在是解决了大量现代编程的问题。除了 rust 难学一点,但学什么不难呢?可惜,现在写 Rust 太少太少了,几乎没有求职空间。只能自己写小工具完,完全不敢在项目里面用。

13961 次点击
所在节点    程序员
124 条回复
iseki
2022-05-26 13:53:49 +08:00
Go 的有点个人感觉在部署构建(傻瓜交叉编译太香了)和基础工程工具上(比如 go fmt ),但是一旦牵扯到 CGO ,这些优势就大打折扣了。其他方面 Go 没什么出彩的地方。感觉拿来做一些命令行工具和基础设施是合适的,写业务就算了,心智负担。
zw1one
2022-05-26 13:53:52 +08:00
go 写中间件的吧 业务系统为啥不用 java
lisongeee
2022-05-26 13:57:38 +08:00
@sprite82 《用你的话翻译一下,没错误啊,你说的错误在哪?》

你认为 ”存在即合理“ 是正确的吗? 犯罪这件事客观存在,你能说它合理吗?你只能说它有存在的理由而不是合理。

比如有些法官判案错误了,导致某些人受到了不公正的待遇,这件事客观存在,按照你刚刚的思维,你认为这是合理的。

那行,祝你以后天天遇到这样的事
Hanggi
2022-05-26 14:04:08 +08:00
这也是一种大势所趋。

写简单的代码,而非优雅的代码。
lululau
2022-05-26 14:07:29 +08:00
社会对信息处理系统的需求激增,傻瓜式语言是大势所趋
johopig
2022-05-26 14:09:50 +08:00
对任何语言都应该保持“可以不爱,但请别伤害”的态度狗😳
8520ccc
2022-05-26 14:47:15 +08:00
cloudflare rust 用的挺多的
xsen
2022-05-26 14:47:50 +08:00
@sampeng #35 真是张口就来,一个开头全靠编。要啥没啥,好歹列个例子,比如哪些是没有的?
同一个项目,半年后去看?我们现在 n 个项目,一年后去看,还不是清楚明白;而且参与项目的都是毕业 1-3 年的
Jooooooooo
2022-05-26 14:48:44 +08:00
你要不举几个具体的例子, 原帖啥也看不出.
xsen
2022-05-26 14:55:02 +08:00
一直不是很明白很多人都说过的复杂的业务,很好奇什么样的业务才叫复杂?

按照我的理解,上微服务,用 http/grpc 拆分业务,单个服务能有多复杂?若真复杂,就是没有拆分好
当然,若是说一大坨那样的单体应用,那当我没说——毕竟不是一个级别的
sprite82
2022-05-26 15:04:30 +08:00
@lisongeee 我觉得你理解能力很有问题,语文没及格还是学个新词故作卖弄?他这句话 不就是,凡事必定有存在的理由 的意思,为什么你会觉得其他说 “存在即合理” 就是曲解本意,你说就对?
sprite82
2022-05-26 15:05:21 +08:00
@lisongeee 如果你还要杠,那就你对
dcoder
2022-05-26 15:11:08 +08:00
主要优点: 配套的工程工具很好用, 打包成无环境依赖的 binary 往服务器上随便扔
这也是它在 DevOps/Infra 领域发展好的主要原因

主要缺点: 表达能力较弱, 写起来其实啰嗦, 加上满屏 if err != nil 看着真是疲劳
写平铺直叙的业务逻辑, 我还是不愿意用 Go, 远不如写 Python...
lisongeee
2022-05-26 15:20:21 +08:00
@sprite82 拿不出依据说不过我,就直接说我杠了是吧,精神胜利玩得挺 6 啊,自己去看 https://www.zhihu.com/search?type=content&q=%E5%AD%98%E5%9C%A8%E5%8D%B3%E5%90%88%E7%90%86
lisongeee
2022-05-26 15:25:50 +08:00
@sprite82 我只是指出一个由于翻译错误而导致以讹传讹的问题,我当然知道他本来的意思。
jhdxr
2022-05-26 15:37:37 +08:00
1. go 足够简单,这点从很多 php 程序员都能转 go 就看出来了
2. Google 出的,大厂信仰

(个人认为第一点的原因远大于第二点

另外在世界范围内 go 并没有这么火,在国内我认为是正好赶上了一波浪潮。只说 web 服务,99%的公司的 web 场景主流语言都能做(前提是能够正确的运用语言,观隔壁 php 高并发帖子有感),更多的是用的顺手就行。

这些年真正有突破性创新的语言感觉也就只有 rust ,但那个学习曲线是真的陡峭(但 rust 也不是来抢 web 饭碗的,是抢 c++的——go 在这个领域属于 rust 做不了的 go 一定不行)
Elaina
2022-05-26 15:38:55 +08:00
我觉得吧,一是语法简单,上手快,二是并发优势( channel 和 goroutine ),三是部署方便,四是背后有谷歌爹和各种开源项目( docker ,k8s 等等)站台。说实话,我认为这玩意儿写业务虽然是灾难,但是和云相关的基建开发以及造轮子是非常好用的。
pastor
2022-05-26 15:41:42 +08:00
提醒一下,请看看隔壁 php 高并发的帖子:
/t/855361
Zwying
2022-05-26 15:51:28 +08:00
我就觉得 Golang 部署及其方便,我才入门的它
sprite82
2022-05-26 15:54:27 +08:00
@lisongeee 啊对对对

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

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

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

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

© 2021 V2EX