我看够呛。
我在刚毕业时,有过短期Java开发经历,后来多年不搞后端,已经跟不上形势了,可又懒得重学一遍java,于是想找一套短平快的方案。
一开始我本来一度看好过Go,但只学了语法,就已经能看出这门语言难堪大用。所以放弃了Go语言,转了.Net Core。
我对Go的感觉是,谷歌只做了个半成品,就扔掉不管了。
这门语言几乎无法调试,只能各种加Log。虽说是静态语言,却不支持泛型,代码重用度非常低,导致写起来先易后难,虽然开头很简洁,但项目越大越臃肿。只要项目规模增大一点点,重复性的冗余代码就要翻倍。
市场份额方面,我也不看好。因为用途太单一。若说会不会有成长?我相信一定会有成长的。但这并不是靠语言优势改变了用户结构,而仅仅是因为行业整体性成长的红利,导致有越来越多的初学者学习编程。
现在的编程语言同质化太严重。这些年流行起来的语言,几乎都是试图在小型项目中取代Java。
PHP、python、Ruby如此,Go语言也是如此。这些语言与Java用途重叠,又不利于维护,只能在初学语法的时候爽几天。真正拿来干活,却是各种悲剧。小型项目中可以分一些残羹剩饭。在稍大的项目中,根本无法与Java一战。
目前能够开发后端的语言中,能在语法层面跟Java对打,健壮性、可维护性不落下风的,就只有C#和TS。
假如不考虑性能,TS+Node倒也是个可选的路子。但怎么可能不考虑性能呢?单线程、几十倍的性能差距。先天缺陷大如天,导致后天建立的各种优势,全都失去了价值。
天生就是一只兔子,就算把肌肉锻炼到生理极限,也无力与狮虎一争高下。
所以选来选去,留给我的就只剩下了两条路。要么重学Java,要么.Net Core。