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