雖然Java應用最廣泛,但與其它語言比並沒有什么技術上的優勢。常會看到各種抱怨,說Java語言設計不如C#,對native的精確控制和靈活性不然C++,動態性、開發效率方便不如Ruby,Python,Node,在高並發領域又不如Erlang,中間應用層又遠不如Go、Swift等,但為什么它一直是編程語言排行榜首,並且在大公司中廣泛應用呢?
比較同意一種說法,Java最大的優勢不是它的跨平台性而是它龐大而完善的生態系統。它的流行最主要原因還是由其生態系統決定的。
- Java語法不復雜,入門簡單。語言各方面比較均衡,擁有最值得信賴的GC,避免很多碼農的低級錯誤。並且天生的面向對象設計,更容易模塊化開發。再加上Java強類型靜態語言,只要框架已搭好,即便開發人員能力不足,也基本能保證代碼質量,這在大項目的協作開發、維護方面很有優勢。
- 開源,擁有大量的第三方庫,並且大部分質量有保證,可以拿來就用,對軟件生產效率的提升所帶來的巨大價值。正如一句話所說:“我們不生產代碼,我們只是Github的搬運工。”並且Java擁有很多殺手級應用,如Spring,Apache、Android,Hadoop,Spark等。
- 擁有免費好用的IDE——Eclipse,通過插件幾乎可以滿足日常開發的任何需求。
- 最重要的,Java在不斷的進化,並且在慢慢的進化,正如羅胖在剛剛過去的《時間的朋友》跨年演講中說的那樣“我們喜歡進步,更喜歡慢慢的進步”。
JDK1.4性能很大提升,基本被人接受
JDK1.5增加泛型、線程池、注解
JDK1.6進一步提升性能
JDK1.7加了Try with Resource,switch String等小功能,多線程方面也有改進,性能再次提升。
JDK1.8加入lambda, stream等功能,功能上有了很大的升級。
最后,Java擁有世界上數量最多的程序員,更容易招到人。