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

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

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

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

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

13825 次点击
所在节点    程序员
124 条回复
GeruzoniAnsasu
2022-05-26 10:37:37 +08:00
你的发言完全颠倒了好几个事实,说明你……并没有什么正确认识

「没标准」完全就是错的,golang 里 http 库和 sql 库几乎是一切相关轮子的标准,轮子都在标准上拼拼凑凑而已

「工程问题交给程序员」也完全是错的,cmake 那才叫工程交给程序员,代码标准、格式化、测试框架、包管理都语言内置,你找找第二个?

「模板代码」不知道你在说啥,但 golang 连泛型都没有,是不可能写模板的,除非你在说用来写后端渲染的 template 库,但你自己想想后端渲染是主流吗现在。有很少工程会用代码生成器,但相关的需求往往放其它语言也得代码生成器。

「存在即合理」说的是你感知到了事物的存在说明事物的存在合乎你的理性模型,其客观存在能被投射成你的认知。

「存在说明它某种方向上是对的」是个完全傻逼错误的想法,一件事即使不存在任何意义或价值或正确性也可以存在。

「学什么不难呢」这种看法也全错,世界上出现过的语言就没几个复杂度能跟 rust 比的,golang 这种关键字比 c 还少的简单语法我是不知道怎么能放到一起去比的
dog82
2022-05-26 10:40:13 +08:00
go 的协程和管道以及 context 用在复杂业务场景下就是噩梦,我看 filcoin 的 lotus 的 lotus 调度代码简直要吐了

go 主要用在区块链、中小型 web 服务、docker 、k8s 场景下合适。

大规模 web 服务老实用 java
nash
2022-05-26 10:44:19 +08:00
多发点这种贴,golang 会更火
wxlwsy
2022-05-26 11:01:05 +08:00
if err != nil 。。。。
codefun666
2022-05-26 11:01:37 +08:00
讲道理,C/C++和 Python 足够了,语言只是实现工具。 入门越快的语言,门槛越低。
hzxxx
2022-05-26 11:04:57 +08:00
@lisongeee 看到这种屁话就很烦,人家就是不知道理由是啥,你就别来秀智商了
ikaros
2022-05-26 11:29:37 +08:00
对,我也觉得这么辣鸡的语言为啥这么火,是我就转 rust 了
ihciah
2022-05-26 11:48:25 +08:00
这个事属于没办法,go 太好学了,市面上一抓一大把,属于农村包围城市了。
虽然对于熟手来说 Rust 的开发效率、运行效率和可维护性都比 go 好太多,但在 Rust 开发人员变的足够好招之前,业务线的 ld 很难选它的。自己能写什么很大程度上取决的别人写什么。
sampeng
2022-05-26 12:03:38 +08:00
@dbskcnc 嗯。我比较同意你这一点。所以这就把问题交回给研发了,研发水平好。整体质量就高,研发水平低,那就是另一坨屎山。换句话说上限高,下限也很低
SenLief
2022-05-26 12:12:33 +08:00
日经贴,难道不是公司用啥你用啥吗?
sampeng
2022-05-26 12:23:18 +08:00
@GeruzoniAnsasu
我不是特别熟悉 golang ,只是拿来练练手,随便写点小工具。仅此而已,所以比较片面,所以我提出 why ?因为我不理解。。golang 给我感觉就是一开始写很爽快,但越写越难受。

[没标准] 是说你可以任意组织代码,这是好事也是坏事,我只是从工程角度考虑,并不是个人开发,个人开发没标准是最香的。坏处就是 10 个人来写同一个逻辑,十个不同的组织方式,还各个写法不一样。

[问题交给程序员] 是把工程问题交给程序员,哦。第二个?我上面提的 rust 算吧,而且做的更好,就这破测试框架。。说实话真的用的很难受。junit 等 unit 系列的用习惯了,会觉得这个所谓测试框架太简单了。扯远了,我更想表达的是把如何写好一个代码的问题交回给了程序员。换句话说,上限高我不可否认,但下限也低。不如 java 那样上限不高,但是下限再烂也不会烂到哪里去。

[模版代码] 就是样板代码,因为没范型,要靠粘贴复制才能解决或者 n 层包装才能模拟解决。

[学什么不难]我并没说学 rust 不难,难和简单是一个相对概念。对每个人都不一样的感受。我想表达的是,学任何东西都有成本。收益比现在肯定是学 golang 最高,因为付出少,收获多。这个不可否认。我其实觉得学 rust 和 golang 是一样的付出成本,但收获是不一样的,所以我才把 rust 拿出来说。

其实不太喜欢逐字逐句的提出反驳。。因为我想表达的并不是哪一句话。而是抱怨,疑问和探索。
sampeng
2022-05-26 12:27:09 +08:00
@dog82 嗯。这也是我的感觉,协程和管道简单的还行,复杂业务场景,可能我太菜。绕几圈我就糊涂了。。。
sprite82
2022-05-26 12:30:08 +08:00
@lisongeee
> 我知道存在即合理,但我真的没看出来 golang 有什么特别的亮点够他这么火。
> 我知道凡事必定有存在的理由,但我真的没看出来 golang 有什么特别的亮点够他这么火。
用你的话翻译一下,没错误啊,你说的错误在哪?
zzzkkk
2022-05-26 13:03:48 +08:00
鄙人也说过
go 的应用面窄 只适合需要高并发中间件场景
在这种场景下速度比 java 快的基础上替代 java
JDog
2022-05-26 13:31:38 +08:00
据说所观察到的,都是 php 的饭不好吃了,转的 golang....
disk
2022-05-26 13:33:40 +08:00
用来写网络和 IO 的中间件和微服务组件挺舒服的。go 是起源于 google 用于解决内部痛点,火是它满足了别人的特定需求。至于你觉得不舒服,大概率是你的场景没必要去用它。
ychost
2022-05-26 13:43:32 +08:00
因为背后有谷歌背书,看看 flutter 背后的 dart 写起来真实一坨 shit
chisato
2022-05-26 13:45:10 +08:00
因为开发出了 Docker ,Kubernetes 这种生产级别的工具,已经被证实成为工业界的事实标准,真正的工程不是 web 单体,分布式是常态;而工程只有 web RESTful API 吗,不还需要很多工具:viper ,frp ,etcd 。开源不是挺好的嘛?集中力量搞大事,对于我们个人用户而言 v2ray 开源用的不香吗?
iseki
2022-05-26 13:50:42 +08:00
@LotusChuan go 的 rpc 是什么?
lisongeee
2022-05-26 13:51:37 +08:00
@hzxxx 是的,你是对的,我非常赞同你是说法

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

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

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

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

© 2021 V2EX