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

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

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

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

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

13964 次点击
所在节点    程序员
124 条回复
huobazi
2022-05-26 15:57:35 +08:00
C# 大法好!
stoluoyu
2022-05-26 16:00:04 +08:00
目前感觉对新人不是很友好,等有一个类似于 rails 的框架或许会好很多?
ilylx2008
2022-05-26 17:54:51 +08:00
go 是 php 和 c/c++的替代品,能不火吗
zhujq
2022-05-26 17:58:02 +08:00
我喜欢看这种引战贴,摸鱼专用
ragnaroks
2022-05-26 18:10:27 +08:00
以前有多少写 PHP 的现在就有多少写 GO 的
drackzy
2022-05-26 18:27:12 +08:00
https://madnight.github.io/githut/#/pull_requests/2021/4
php 明显下滑趋势,Go 上升趋势,Rust 底部缓慢上升启动趋势。
总之不要和大趋势作对。
zzzkkk
2022-05-26 19:20:37 +08:00
@ragnaroks
php 转 go 对写惯 php 的人来说还是很痛苦的! go 写起来垃圾啊 太辛苦
转都是没办法
FrankHB
2022-05-26 20:08:49 +08:00
@LotusChuan OP 的问题虽然比较无聊,不过你这么一回倒是显得有澄清的价值了。
简而言之,因为大部分职业菜鸡只是停留到 PM 喂什么就吃什么的入门阶段,学习成本平摊了,感知不强。
如果要突击学几十个语言,有本事学得会的正常人都会觉得里面的大部分都是什么歪瓜裂枣,学来学去顶用的就那么点东西,时间精力大部分浪费在适应设计者奇怪癖好的 mdzz 上了。(就算这部分开销没整个项目大,无效劳动比例高到发指,加起来绝对不小。)
——别急着考虑这种情况不存在。有选型任务的技术管理多少会面临这种问题。另外职业年限多到被迫全栈和需要带小弟的也有类似的困难。
跟架构不同的是架构的氵比较深的地方基本全是跟具体业务紧耦合的,所以会流行的东西反而不会那么多 nc 粉乱 bb ,知道雷点绕着走相对容易,不像语言不花够时间还被 nc 粉嘲讽没学会。而且搞架构一般不需要带人,培训值得讲的东西基本都有专门的讲师,破事少。
LotusChuan
2022-05-26 22:12:42 +08:00
@FrankHB
不是很理解你这段话的主题。我大概总结出你想说在一次性学很多门语言的情况下累计的学习时间会在整个项目中占很大的开销。

但这种情况的前提是整个项目用的语言非常多并且参与项目的人对其中大部分都不了解,同时这个项目还要求代码是 sophisticate 和 idiomatic 。我感觉那这样没必要抱怨语言,直接骂项目管理是傻子就行了。
vincent7245
2022-05-27 09:42:18 +08:00
吹捧 go 的大部分都是 php 、前端转后端的人,因为学习成本低,又可以达到接近 C++的运行效率。你让他们从头学传 C++/java 他们肯定不愿意,所以 GO 就成了最优解。java 和 C++出身的人很少有无脑吹 GO 的,尤其是复杂业务系统,用 go 还不如用 c++。
vincent7245
2022-05-27 10:05:47 +08:00
@xsen
举个例子,大数据领域的所有计算框架几乎都是复杂业务,比如 spark/flink/hadoop-yarn 等等,没有点技术功底连源码你都看不明白。眼光放宽一点,开发不只是 web 。
Arnie97
2022-05-27 11:28:20 +08:00
从公司的视角看,学习成本低才容易招到码农。在赢者通吃的时代,资本需要 10 个孕妇 10 个产房就能一个月生出孩子来,或者 20 个 30 个孕妇只生出一个也能接受,但是不能接受 10 个月生出来落后于竞品。人力和算力同时具备横向扩展性 (scalability) 的语言又有几种…

是,Rust 设计的更优美,运行期性能更强,除了难没毛病,我自己也很喜欢,那又怎样?一个项目的成败,不只在于技术,而且可能技术不是主要因素。亲眼看着部门把原有 Rust 的项目代码重构成 Go ,因为招不到足够的人来开发维护,满足不了需求迭代节奏。就算我自己掌握和喜爱 Rust ,我不能一个人顶一百个研发,也招不到一百个会 Rust 的研发,我又能说什么呢。一旦有了这种先例,后面新项目选型时还敢用 Rust 技术栈么,项目不选 Rust 后续还会招 Rust 研发么。这还是在某家内部有一定 Rust 生态,正在本站招聘 Rust 研发的厂的打工体验。对于其他小厂来说,如果不是技术主导而是业务主导,就更没得选了,C++ 同理。
yaott2020
2022-05-27 12:04:16 +08:00
个人 web 项目不用 go 用啥
xiaoriri666
2022-05-27 12:35:03 +08:00
@Oktfolio ……现在都是 docker
xiaoriri666
2022-05-27 12:51:33 +08:00
@vincent7245 k8s ,docker 不都是 go 开发的,难道很简单?
Akiya
2022-05-27 15:02:30 +08:00
写了一年多的 Go 了,写的还是很恶心, 比如:
取两个 int 的最小值:
a := int32(math.Min(float64(b), float64(c)))
取一个 map 的所有 key:
写 for 循环
取两个 slice 的交集:
写两个 for 循环
xsen
2022-05-27 15:33:32 +08:00
@vincent7245 #111 说的好像我第一次听说 hadoop/spakr/flink 一样,再复杂,有操作系统复杂么;再复杂,有浏览器复杂么

而且对于绝大多数人来说,有几个人会有机会研发基础框架的?!
xsen
2022-05-27 15:34:44 +08:00
@vincent7245 #111 看代码,对我来说从来就不是难事。我看过基于 C/C++的百万级别、千万级别,或者更高级别的代码量的项目
xsen
2022-05-27 15:36:54 +08:00
@vincent7245 #110 你用过 C/C++么,你用过 Java 么。不好意思,每一种我都有 N 年经验
但对于我来说,用过 C++,就不会再考虑 C ;用过 Java ,能不用 C++就不会用 C++;用过 Go ,那基本不会考虑 Java

见得多,你自然知道有哪些好哪些不好,哪些可以忍受,哪些不可忍受
LoNeFong
2022-05-27 15:59:39 +08:00
替你们老板求求你们了好好上班吧!天天语言大战有什么用啊,OP 也是闲的蛋疼,老板给钱就行,让用什么用什么,操什么心啊,写着 PV100 的业务,操着千万级,百万级的心

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

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

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

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

© 2021 V2EX