4個理由告訴你Java為何排行第一
Java已經有20年的歷史了,甚至更久,而這取決於你所詢問的人和你的計算方式。忽略它的年齡不看,Java依然排行第一。它的實用性、效能和向後相容性都彰顯其價值所在。
2016年伊始,標誌著我們已經走過了Java的20年曆程。事實上,雖然Java宣稱是於1995年5月23日公開發行(HotJava 瀏覽器卻並沒有獲得同樣的成功),但第一版官方JDK是在1996年的1月23日才正式發行,因此Java可以稱得上是剛滿20歲。Java身上有很多值得回顧的東西,但我想更加令人感興趣的是Java在20年之後依然能夠成功的原因。
準確測量程式設計語言的受歡迎程度是很困難的,但眾多調研統計中的一個普遍接受的指標是 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描述為“藍領”的程式設計語言。它能使開發者花最小的代價完成工作,同時還能使得開發者在一段時間之後,還能繼續完成別人的(甚至自己的)程式碼並且明白其中的意思。當然,你也可以編寫可讀性差的程式碼,就像你在其他語言中能做的一樣,但是使用良好的編碼風格能夠讓它比其他許多語言都有更好的可讀性。
2. 向下相容
Sun公司和之後的Oracle(甲骨文)公司在確保一個版本的Java程式碼能夠正常地在新的版本執行上做出了很多努力。雖然事情並不總是這樣(如JavaSE1.4中的斷言和JavaSE5中的列舉)並且有時不向下相容的做法能夠獲得更好的實現(如:泛型),但向下相容對開發者來說依然是一個引人注目的特性。沒有比為了能在新版本的平臺上執行程式碼而修改舊版本中的正常程式碼更糟糕的事情了。這簡直是浪費時間。
3. 可擴充套件性/效能/可靠性
在超過20年和每年數以千計的開發者的推動和發展,Java已經成為了一個堅實的平臺,可以趕上甚至超過原生程式碼的水準(多虧了JVM使用了動態而非靜態程式碼解析的一些優化)。當談及可擴充套件性,看看使用Java語言的一些大型企業:Twitter(拋棄了JVM的Ruby-on-Rails,因為它不再能夠擴充套件),Spotify,Facebook,Scalesforce,eBay,當然還有Oracle。Hadoop,Cassandra和Spark,大資料工程的基礎框架,無不使用Java或者Scala並且在JVM虛擬機器上執行的。如果你想要良好的擴充性和效能,Java和JVM是最好的選擇。
4. 保鮮度
對我來說這是最重要的一條。檢視TIOBE統計圖能夠發現,2014年10月份開始,Java的受歡迎程度有了顯著的提升,這剛好是在JDK8發行之後。JDK8對Java開發者來來說有了顯著的變化,它引入了Lambda表示式和Stream API。突然間Java開發者能夠在不用學習一整套新語言(如Scala)的情況下以一個更加有效的方式進行開發。這些特點也使它有可能更簡單地利用多核/多處理器的機器,而不必寫很多複雜的和潛在的容易出錯的多執行緒程式碼。隨著Jigsaw工程在為JDK 9的釋出而啟動, 我們會看到模組化使大企業應用程式更容易建立、部署和維護。同時在JDK10中,對於發展新的語言特性的計劃已經在進行中了,比如值的型別等等。
我非常期待Java能夠獲得另一個十年當中的年度最佳程式語言。
譯文連結:http://www.codeceo.com/article/4-reason-java-no1.html 英文原文:4 Reasons Why Java is Still #1 翻譯作者:碼農網 – 單劼
相關文章
- 8大理由告訴你,入行IT為啥建議你首選Java!Java
- 5個理由告訴你,為什麼UX設計那麼貴UX
- Java 排名第一的4個理由Java
- 九個理由告訴你為什麼要選擇RPA機器人!機器人
- 11條理由告訴你,為什麼你的網站不賣座網站
- 5個理由告訴你為什麼要學習使用Python裝飾器Python
- 為什麼建議新手選擇Ubuntu?告訴你選擇理由!Ubuntu
- 網站安全公司告訴你網站為何會被黑網站
- 印度IT 為何這麼發達?《全球“獵身”》告訴你答案
- 小程式代理加盟:這些理由告訴你,為什麼要加盟小程式
- 4個小例子告訴你,如何成為一名資料極客
- 為什麼那麼多人要學Java?這三個原因告訴你Java
- 為什麼用 Java:一個 Python 程式設計師告訴你JavaPython程式設計師
- 軟體行業大牛告訴你何謂成功?行業
- 15個問題告訴你如何使用Java泛型Java泛型
- 七個生產案例告訴你BATJ為何選擇ElasticSearch!應用場景和優勢!BATElasticsearch
- 六大理由告訴你,為什麼要用豬齒魚工作日曆!
- python和Java學哪個?過來人告訴你答案!PythonJava
- 用演算法告訴你為何手機摔落時總是螢幕朝下?演算法
- Java持續受歡迎的4個理由Java
- 告訴你 Redis 是一個牛逼貨Redis
- 資料圖表告訴您蘋果為何逐漸放棄iPod蘋果
- 一個詞告訴你什麼是翻譯
- 7個步驟,告訴你如何打造“爆品”
- 11點告訴你,Python為什麼這些年在程式語言排行榜上一直上升?Python
- Java,你告訴我 fail-fast 是什麼鬼?JavaAIAST
- 一張圖告訴你學JAVA還是學Python!JavaPython
- 用大白話告訴你,Java到底是什麼Java
- CODE大全告訴你java是否開始沒落了Java
- 作為一個程式設計師,告訴你一些編碼知識程式設計師
- CODING 告訴你如何建立一個 Scrum 團隊Scrum
- MQTT 協議是個啥?這篇文章告訴你!MQQT協議
- 5個資料告訴你亞馬遜雲端儲存有多大亞馬遜
- 美國人告訴你為什麼狀告CNN是很蠢的事情CNN
- CODING 告訴你矽谷的研發專案管理之道(4)專案管理
- 0基礎如何學習Python?4種方法告訴你!Python
- ?【圖】用圖片告訴你Java中的位運算Java
- 邁進java初中級程式設計師分水嶺是否合格?十個題告訴你!Java程式設計師