每次想选个开发平台,货比三家,最后还是回到Java,如果用性格描述Java,那应该是成熟稳重型,简直是为了强迫症患者设计的,下面我跟大家探讨。
1.放弃不了Java的最重要的原因:Java平台最大的优点就是成熟稳重,可能是目前世界上最成熟的平台了,生态非常繁荣,凡所应有,无所不有,且向下兼容性极好。
就算是十分冷门的需求-Windows api调用,Java调用native的方法就有好几套,甚至jna里都帮你封装了一车的Windows api。而go里我只找到一个第三方的github库,api数量也少得可怜。
与其它主流高级语言相比,Java确实啰嗦,但Java总体来说比较沉稳,面面俱到,没有太大短板。基本上Java的各种难题,基本都有开源的解决方案。
(我认为Java,c#,go这样的编程语言更加沉稳的原因是他们诞生于企业战略规划,而不是个人一时兴起,这样的语言历史遗留问题会比较少)
2.语言语法与机制:
Java确实啰嗦(仍然比c++要简约得多),比起python,Php开发效率更慢,但这让代码严谨,防错,易读。
3.运行性能:
说Java性能差的都是不了解Java的,实际上在运行时平台中,字节码被Hotspot多次优化后可以说是性能爆炸。
4.面向对象:
另一个被批评最多的是没有委派或混合功能,代码复用很多时候容易依赖继承而难以使用组合。
这确实是一个问题,解决办法是:...手动委派或简单讲将被组合对象作为属性。
5.反射/元操作
Java具有比较完整强大的反射功能,这使很多强大的框架得以实现,然而很多人说反射性能低下,尽量不用,这是因为它们做反射去调用方法时,没有作好缓存
6.Java常常作为编程语言标准被其它语言比较...似乎显得处处落后
google最推荐的big-three:Java,python,go。
俗称JPG工程师,不是没有原因的。
最后,一点建议,建议保底学习Java。Java语言可能倒,但Java平台不朽。
而后可以选择go/python/kotlin(强烈推荐kotlin),有望接任Java
顺便要顶一下有点凉但很理想的编程语言Rust。
C++没有Java这么幸运,一直等不到那个接替她的人,Rust是最有希望的...