為什么感覺都還在用8?
恰恰相反,Java隨著版本號的更新,是越來越好了。不管是底層的虛擬機,還是上層的新語法新類庫,都讓Java這門語言生機勃勃,Java生態繁榮向好。
就拿剛剛發布的Java 16來說,千呼萬喚的Record終于也正式成型,加入到了Java標準中,以后我們在編寫Java Bean的時候,不用再一個一個手動定義字段,也不再需要lombok自動生成字段, 只需要使用這一官方特性,就可以輕松地生成完整的類。
這樣的新特性和語法糖在新版本的Java中比比皆是,凡是用過的程序員都說好。我也實在想不通,這么一門優秀的語言是怎么被人說是越做越爛的,真是奇了怪了??
再說回為什么現在大量項目還在使用Java 8甚至更老的Java,其實原因很簡單,這和現在大部分公司的管理模式相關。現在大部分公司基本上都是以項目為驅動,簡單來說就是項目做出來就算成功。只要項目能夠保持穩定運行,那么就不要動它,就算有什么安全漏洞也別管。在此基礎上, 就算有一些程序員有動力去升級版本,但是升級成功以后老板也不會給你加錢,萬一出了問題還要倒扣錢,在這種環境下,大家當然是得過且過,一個項目版本用到死。
另一方面這也和Java新的更新策略有關。原來Java更新是很慢的,基本上每一次大版本號更新都是長期支持版,相應的每次大版本號變動就非常慢,給了很多公司升級的空間。不過自從Java 9開始,Oracle修改了更新策略,差不多每10個月Java就會更新一次大版本,幾次更新中只有一次是長期支持版。一般商用項目自然都是在長期支持版上運行,不會一直跟著大版本號走。目前Java最新的長期支持版是Java 11,下一次長期支持版是Java 17.如果你所在的公司技術很牛逼,那么現在你用的Java應該就是11了,等到下一次切換版本應該就是明年的Java 17了。
至于說什么Java 8之前免費用,之后收費用的,基本上都是被標題黨自媒體欺騙了。需要明確的一點是,收費的是OracleJDK,不是Java。自Java 8以后,以商業目的使用OracleJDK確實要收費,但是如果個人開發者以學習目的使用OracleJDK是不收費的。如果商業公司不想給Oracle交錢的話,可以轉為使用免費的OpenJDK,實際上在Java 9正式實現了模塊化以后, Java源代碼經過重新組織和編寫,OracleJDK和OpenJDK之間幾乎不存在兼容性問題,大家完全可以放心使用OpenJDK。
當然,默認的OpenJDK只有壓縮包沒有安裝包,所以對于一些懶人程序員來說很不好用。所以還有人開發了AdoptOpenJDK,基于開源的OpenJDK增加了預編譯的安裝包,安裝和使用體驗和OracleJDK完全一致,還沒有任何法律風險,同學,你還在等什么呢?
作為一名普通的Java程序員,我對Java的前景充滿樂觀,新的Java語言也擺脫了從前那個頑固守舊的形象,開始變得越來越活潑了。新功能層出不窮,Java語言越來越好玩,也越來越好用了。還沒用過新版Java的朋友們也可以去了解一下,相信你會打開新世界的大門。