天天看點

4 個理由告訴你 Java 為何排行第一

java已經有20年的曆史了,甚至更久,而這取決于你所詢問的人和你的計算方式。忽略它的年齡不看,java依然排行第一。它的實用性、性能和向後相容性都彰顯其價值所在。

2016年伊始,标志着我們已經走過了java的20年曆程。事實上,雖然java宣稱是于1995年5月23日公開發行(hotjava 浏覽器 卻并沒有獲得同樣的成功),但第一版官方jdk是在1996年的1月23日才正式發行,是以java可以稱得上是剛滿20歲。java身上有很多值得回顧 的東西,但我想更加令人感興趣的是java在20年之後依然能夠成功的原因。

4 個理由告訴你 Java 為何排行第一

準确測量程式設計語言的受歡迎程度是很困難的,但衆多調研統計中的一個普遍接受的名額是 tiobe指數。它能夠通過各種搜尋引擎以及谷歌部落格、維 基百科甚至youtube進行語言跟蹤。(在寫這篇文章的時候,我學到了一些新東西,那就是,tiobe其實是“the importance of being ernest”的縮寫,它是奧斯卡·王爾德的一部劇作,雖然我不清楚這跟程式設計語言有什麼關系)。

回顧過去十五年的成果,java一直是數一數二的。java已經占據了曾經c語言所擁有的地位,而c語言在java開始流行之前一直是最受關注的語 言。(事情變化多快啊!早在1986年lisp語言還是排名第二的語言而ada排名第三)。tiobe指數也剛剛宣布2015年是java語言年,而十年 之前,java就已然獲此殊榮。

作為普及率的另外一個展現,甲骨文經常喜歡引用的統計,即世界上有九百萬的java開發者。如果你想要找點樂子,那麼請檢視這篇文章,它提供了一些關于開發者數量如何達到這一數目的細節。忽略這些細節不看,我認為大家都同意全球的确有數以百萬的java開發者。

那麼,為什麼java能夠持續的受到歡迎呢? 我認為還是有一些原因的,這裡我們列舉四條:

1、實用性

james gosling将java描述為“藍領”的程式設計語言。它能使開發者花最小的代價完成工作,同時還能使得開發者在一段時間之後,還能繼續完成别人的(甚 至自己的)代碼并且明白其中的意思。當然,你也可以編寫可讀性差的代碼,就像你在其他語言中能做的一樣,但是使用良好的編碼風格能夠讓它比其他許多語言都 有更好的可讀性。

向下相容

sun公司和之後的oracle(甲骨文)公司在確定一個版本的java代碼能夠正常地在新的版本運作上做出了很多努力。雖然事情并不總是這樣(如 javase1.4中的斷言和javase5中的枚舉)并且有時不向下相容的做法能夠獲得更好的實作(如:泛型),但向下相容對開發者來說依然是一個引人 注目的特性。沒有比為了能在新版本的平台上運作代碼而修改舊版本中的正常代碼更糟糕的事情了。這簡直是浪費時間。

可擴充性/性能/可靠性

在超過20年和每年數以千計的開發者的推動和發展,java已經成為了一個堅實的平台,可以趕上甚至超過本地代碼的水準(多虧了jvm使用了動态而 非靜态代碼解析的一些優化)。當談及可擴充性,看看使用java語言的一些大型企業:twitter(抛棄了jvm的ruby-on-rails,因為它 不再能夠擴充),spotify,facebook,scalesforce,ebay,當然還有oracle。hadoop,cassandra和 spark,大資料工程的基礎架構,無不使用java或者scala并且在jvm虛拟機上運作的。如果你想要良好的拓展性和性能,java和jvm是最好 的選擇。

保鮮度

對我來說這是最重要的一條。檢視tiobe統計圖能夠發現,2014年10月份開始,java的受歡迎程度有了顯著的提升,這剛好是在jdk8發行 之後。jdk8對java開發者來來說有了顯著的變化,它引入了lambda表達式和stream api。突然間java開發者能夠在不用學習一整套新語言(如scala)的情況下以一個更加有效的方式進行開發。這些特點也使它有可能更簡單地利用多核 /多處理器的機器,而不必寫很多複雜的和潛在的容易出錯的多線程代碼。随着jigsaw工程在為jdk 9的釋出而啟動, 我們會看到子產品化使大企業應用程式更容易建立、部署和維護。同時在jdk10中,對于發展新的語言特性的計劃已經在進行中了,比如值的類型等等。

我非常期待java能夠獲得另一個十年當中的年度最佳程式設計語言。

====================================分割線================================