性能不错,编译快,产物小,启动快,语法简单,包依赖都是源码,可审计,开源生态目前我觉得还挺好,这个优点目前其他语言不能兼顾
系统复杂性其实跟语言没有关系;我是从 java 转 golang ;两种语言的编程模式确实有很大的差异,每种语言在思维上有很大的惯性,早期转换也是有很多不理解,和把一些 java 的惯用法带到 golang 。
java 的生态比较好,这个是因为 java 出来比较早,golang 后面也在一些领域补齐短板,不是必须要所有领域都补齐才能使用 golang ,有些业务需要的技术领域就那么大,并不需要全方位的生态。
golang 比 java 优秀的有很多地方,比如语法,构建系统,框架层面知识掌握并不是需要很多,真的是上手简单,除了 1.18 增加范型,语法十几年没有变,对于新人上手和对于脱离编码的管理层来说非常友好,在 code review 上非常轻松,一天或者一周就能学会的语法可以用十几年。java 我都不想吐槽它的语法、构建系统的学习、国内企业级应用开发重度的框架使用;
另外在 cloud native 方面,golang 优势还是很强的,节约内存,几乎秒启动。这一块 java 在 AOT 或者 native 还是没有看到大规模生产级实践。以前业务基于 spring boot 框架开发,为了扩容快秒启动各种限制扫描 jar 范围还是没能够解决启动慢的问题。如果服务质量和流量稳定还行,真碰到大规范 crash ,或者流量激增,在动态扩容方面基于 spring boot 那套还是缺陷慢严重的
补充一些研发体验上的,切换到使用 golang 几年根本没有做过类似 jvm gc/内存调优那种事。jvm 光去学习 gc 算法、原理和调优参数就够花费很多时间
我也是 all in go,除非能证明 go 不行的地方再用其它的,目前只有一些 codec 是 c/c++的,这个 go 确实没,有些不方便集成到程序中的,直接 rpc 过去,目前用得很舒服。 你这个 “使用 go 语言反而提升了系统的复杂度“ 论断有点主观了,这个跟语言没太大关系啊,你可以说 go 啰嗦了点,但是这点其实我也一点也不认同,那些高级语法糖和框架糖才是更加让人脑疼的枷锁(伤脑,除非你把它们变成肌肉记忆甚至变成它的形状),用 go 就是很自然,谁都能懂,并且现在各家的 ai 也很懂,如果手敲代码,go 确实需要多打好多下,但是现在写代码都不需要你动手了
以前不看这个排名,直接看招聘需求的排名,现在看 ai 熟悉度排名。
你无非就是说想用 Java 呗,大家偏不惯着着你,而且以后 Java 的使用率只会越来越低。
我用 php 因为简单
我用 python 因为简单
我用 go 因为简单
任何东西,想要变得流行,离不开上手容易出活快。
你这个里面缺少论据。说的不够具体,比如具体是什么特性导致无法满足业务,这样大家才好分析
看看这两个能不能帮到你
https://goframe.org/
https://linapro.ai/zh/
@alamaya #17 我也觉得是。我的独立项目都打算用 go 重写。