Golang不是银弹

本来写了很多,但是怕被喷删了。

最近go语言越来越火,也有很多人在学不学go之间纠结,转不转go中犹豫。

以上我的答案是 —— 学!慎转!

近来把一些以前的项目用go重写了,也参加了一家公司的go项目。后来还是选择离开重新回归java。

go简单是真简单快速上手,但是你永远不会知道你的队友会写出多么“优秀”的代码。Java code review你还可以有个基本体系和结构看出来,go一旦放飞自我分分钟想砍人。软件工程不单单是靠写的语言简洁。错误返回不规范(没信息),recover没处理等待,慢慢debug懵逼吧。

在硬件不断发展的今天,性能真有那么重要吗?(这是对我自己说的,我曾经有严重的主观过于重视性能),有多少人能做到需要靠语言层面才能提升性能?理论上说go的性能比python,java要高(忽略JIT特殊场景)。但是系统性能靠的是短板效应,而最短板往往是写代码的人,现在的go开发人员是真参差不齐,go足够简单所以很多语言之外的东西一下子就凸显了出来。

并发写着简单不意味着并发效率一定高,go的并发源于CSP模型。如果深入了解内部实现和Elrang甚至是lua你会有更深体会。

go的社区很有活力,但方向感也很弱。开发基础设施,架构设计很快很简单,但是你拿他写复杂业务试试,分分钟想吐。有个笑话是使用GO节省80%机器费用,增加80%后期维护费用。改go时我居然有点感觉Rust编译真好的错觉!

go跨平台,没有虚拟机这个是真好。但是GC。。。

电脑有点卡了,重装一个系统,换一台电脑会有以前问题消失了如丝般顺滑的错觉。

还有很多就不一一例举了。

上面这些并不是说go语言不好,否则我也不会建议学。go最大的优势是恰逢其时——云。

现在很多一提到go就是无脑黑或者无脑吹的情况,这里只是希望大家能保持一定理智。

好钢用在刀刃上,任何脱离了实际场景的都是耍流氓。go非常适合做云开发和需求不易变的基础设施或者中间层,包括最近很火的数据中台。但是什么项目都无脑上go还是省省吧,go绝不是银弹(虽然它诞生之初就在整合着其他语言优势,算是集大成者但也让它在方向感上的缺失)。个人更推荐将go作为一门辅助语言或工具语言使用,而不是一门万金油语言。

go是否值得学习?

非常值得,go的优点已经被吹的天花乱坠了,这点就不需要过多介绍了。

转go需慎重

如果你励志投身云计算,区块链,并发服务器开发领域那么转go可能会是一个明智的选择。如果你是刚刚大学毕业,不建议,即便走go也最好学一门其他语言。其他的悠着点吧,以go的特性要转很简单所以个人建议先把它掌握,关注生态圈的发展,到了时候转就是了嘛。最后如果你真的很喜欢go,按你的本心去选择。

更新时间:2020-04-12 15:15:27

本文由 寻非 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.zhouning.group/archives/golang不是银弹
最后更新:2020-04-12 15:15:27

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×