java太卷了,要不要转go?

我是名后端go程序员,使用go超过6年了。java也懂点,在用大数据的时候java是必须的。平常工作接触的java程序员也很多。

go经过这么些年的发展,慢慢开始成熟,我还记得5年前,我换工作的时候,国内招聘go的还很少,猎头找我甚至都没怎么听说go语言。看看现在,go的需求有多大。3年身边一个php程序员学了半年go,直接去转了go,工资提升30%。

java我虽然也熟悉,但不算有深入研究,我不太多的介绍。

go我比较有研究,写了很多程序,像基于websocket的消息订阅系统,人脸1:N比对系统,nat穿透等等有意思的项目。go可以做的事情很多,比如很多人用go来开发直播系统(rtmp,http-flv,webrtc)。当然还有大家熟知的k8s,docker等系统都是用go来实现的。总体感觉下来,go适合大多数后端场景。一些对内存稳定性敏感(go有gc,内存申请和回收可能有锯齿),对长尾耗时敏感的项目你可能需要没有GC的语言,我个人就选择RUST。

对于go的优化,其实手段挺多的,常见的就是使用cgo,我个人也用过,在使用人脸向量比对的时候就可以使用go调用c语言的方式,效果还是很明显的。还有一种更直接的方式是使用go汇编。

go的汇编和我们常见的inter汇编和at&t汇编不一样,使用的plan9汇编,资料不是很多,但是也不算太难,go runtime源码里头使用得好多,感兴趣的可以学。汇编对go的性能提升非常多,没有cgo的额外开销,但是缺点就是没法交叉编译,换个新架构的cpu,你得另外写一套。

说了这么多,我还没表明我的观点,如果你用java只是满足平常的curd任务,转go语言也是这样的追求,那么我建议市不用转,java和go性能没有差太多。 如果你追求其他比较底层的服务或者运用,你可是先尝试学习一下go,等熟练起来了,在凭自己感觉,再决定是不是要转。

本文来自投稿,不代表小黑子立场,如若转载,请注明出处:http://www.yuanjiash.com/1334.html

(0)
七师有兵的头像七师有兵
上一篇 2023年1月20日
下一篇 2023年1月20日

相关推荐