2016年開始,標(biāo)志著我們已經(jīng)走過(guò)了Java的20年歷程。事實(shí)上,雖然Java宣稱是于1995年5月23日公開發(fā)行(HotJava瀏覽器卻并沒(méi)有獲得同樣的成功),但版官方JDK是在1996年的1月23日才正式發(fā)行,因此Java可以稱得上是剛滿20歲。Java身上有很多值得回顧的東西,但我想更加令人感興趣的是Java在20年之后依然能夠成功的原因。
準(zhǔn)確測(cè)量程序設(shè)計(jì)語(yǔ)言的受歡迎程度是很困難的,但眾多調(diào)研統(tǒng)計(jì)中的一個(gè)普遍接受的指標(biāo)是TIOBE指數(shù)。它能夠通過(guò)各種搜索引擎以及谷歌博客、維基百科甚至YouTube進(jìn)行語(yǔ)言跟蹤。(在寫這篇文章的時(shí)候,我學(xué)到了一些新東西,那就是,TIOBE其實(shí)是“The Importance Of Being Ernest”的縮寫,它是奧斯卡·王爾德的一部劇作,雖然我不清楚這跟程序設(shè)計(jì)語(yǔ)言有什么關(guān)系)。
回顧過(guò)去十五年的成果,。TIOBE指數(shù)也剛剛宣布2015年是Java語(yǔ)言年,而十年之前,Java就已然獲此殊榮。
作為普及率的另外一個(gè)體現(xiàn),甲骨文經(jīng)常喜歡引用的統(tǒng)計(jì),即世界上有九百萬(wàn)的Java開發(fā)者。如果你想要找點(diǎn)樂(lè)子,那么請(qǐng)查看這篇文章,它提供了一些關(guān)于開發(fā)者數(shù)量如何達(dá)到這一數(shù)目的細(xì)節(jié)。忽略這些細(xì)節(jié)不看,我認(rèn)為大家都同意全球的確有數(shù)以百萬(wàn)的Java開發(fā)者。
那么,為什么Java能夠持續(xù)的受到歡迎呢? 我認(rèn)為還是有一些原因的,這里我們列舉四條:
1、實(shí)用性
James Gosling將代碼并且明白其中的意思。當(dāng)然,你也可以編寫可讀性差的代碼,就像你在其他語(yǔ)言中能做的一樣,但是使用良好的編碼風(fēng)格能夠讓它比其他許多語(yǔ)言都有更好的可讀性。
2. 向下兼容
Sun公司和之后的Oracle(甲骨文)公司在確保一個(gè)版本的,但向下兼容對(duì)開發(fā)者來(lái)說(shuō)依然是一個(gè)引人注目的特性。沒(méi)有比為了能在新版本的平臺(tái)上運(yùn)行代碼而修改舊版本中的正常代碼更糟糕的事情了。這簡(jiǎn)直是浪費(fèi)時(shí)間。
3. 可擴(kuò)展性/性能/可靠性
在超過(guò)20年和每年數(shù)以千計(jì)的開發(fā)者的推動(dòng)和發(fā)展,,Spotify,F(xiàn)acebook,Scalesforce,eBay,當(dāng)然還有Oracle。Hadoop,Cassandra和Spark,大數(shù)據(jù)工程的基礎(chǔ)框架,無(wú)不使用Java或者Scala并且在JVM虛擬機(jī)上運(yùn)行的。如果你想要良好的拓展性和性能,Java和JVM是的選擇。
4. 保鮮度
對(duì)我來(lái)說(shuō)這是重要的一條。查看TIOBE統(tǒng)計(jì)圖能夠發(fā)現(xiàn),2014年10月份開始,Java的受歡迎程度有了顯著的提升,這剛好是在JDK8發(fā)行之后。JDK8對(duì)Java開發(fā)者來(lái)來(lái)說(shuō)有了顯著的變化,它引入了Lambda表達(dá)式和StreamAPI。突然間的情況下以一個(gè)更加有效的方式進(jìn)行開發(fā)。這些特點(diǎn)也使它有可能更簡(jiǎn)單地利用多核/多處理器的機(jī)器,而不必寫很多復(fù)雜的和潛在的容易出錯(cuò)的多線程代碼。隨著Jigsaw工程在為JDK9的發(fā)布而啟動(dòng),我們會(huì)看到模塊化使大企業(yè)應(yīng)用程序更容易建立、部署和維護(hù)。同時(shí)在JDK10中,對(duì)于發(fā)展新的語(yǔ)言特性的計(jì)劃已經(jīng)在進(jìn)行中了,比如值的類型等等。