@
byte10 Hi 好久不见!
当年 golang 还没成熟的时候,我写 c/cpp 觉得有点累,于是手撸 NIO 被 java 的臃肿恶心到了,然后想想还是继续撸 c/c++算了,golang 成熟了我就撸 golang 了。
性能这个,同样的看我前面楼层,别说语言指令这种,要用大家常用的对比。可能跟老 php py 这些比是要强些,跟 nodejs 、go 比应该都是被吊打。剩下的也只有所谓的生态优势,但对于 curder 来说其实主要是行业技术栈优势,例如电商、企业级已经有那么多 java 那没必要重新造一遍,但这并不是别的语言不能搞、而是它还算稳定所以没必要重新搞,它占领市场早所以岗位多罢了。但是新生领域或者说需求变化快的领域,它也并不具备优势,所以直接头条 b 栈猎豹移动七牛各种新兴势力倾向 golang 。抛开这些行业选择它的历史优势,很多 java 不适合的,例如云原生。还有一些虽然用了 java 实现的基础设施、但其实如果用其他语言会比它效果更好,同样也是历史原因罢了。
另外,javaer 遇到“复杂”点的问题容易懵逼,例如系统知识,怎么排查网络、数据库各种。我不是说所有 javaer 都不懂,而是相比于 c/cpp/go 这些,javaer 不懂的人的比例有点多。言必称希腊,聊技术就是框架、全家桶、八股文。当然,我不是针对 java ,脚本语言的人绝大多数也基本都这样。并不是怪这些开发者不求上进,而是因为 java 社区就流行这种氛围,见过太多八股文选手,背了一大堆,侃知识点说的头头是道,离开八股文范畴面试问他点深入的就容易 game over 。
我也看到过很多 javaer 自己总结:背会了很多八股,但结合实际了却不知道怎么应用。
再说下 java 性能不错,比如 2018 年那会我门一些兄弟部门业务重构由 java 切到 go ,切换后对比了下,业务量还是原来那么多,他们对比了重构前后的消耗,以前 java 的内存消耗大概是 go 的 2-3 倍,cpu 消耗是 go 的 1.5-3 倍,响应时间 go 略好但整体上倒是没差太多基本可以忽略,因为并不是把服务硬件指标跑满、主要时间都是花在数据库上。别人喜欢用重构后消耗降低了多少百分比,但百分比看上去就好像是节省了一个比例罢了,反过来看,假设以前是 go 、切换到 java ,硬件成本直接翻 2-3 倍,这个情景就比下降的百分比更明显了