不管你愛與不愛,Java都在變得更好

TechRepublic網站最近發佈了一篇文章,討論了開發者喜愛和討厭的編程語言。結果很有意思,Java既是第三大最受程序員喜愛的語言,也是第二大最受程序員討厭的語言。很顯然,作爲一門編程語言,Java出現了兩極分化。我就這個問題發了一條推文,有人引用了C++之父Bjarne Stroustrup的經典名言作爲評論:“世界上只有兩種語言,一種飽受詬病,一種沒有人用”。我覺得這位用戶借這句話恰如其分地表達了他的觀點。

第二篇文章來自Packt Publishing出版公司,這是一份開發調查報告。報告把Java放在一個相對負面的位置上。從報告的結果來看,Java成了開發者最後悔學習的一門編程語言。但有必要說明一下,即使Java在報告中名列第一位,但只有不到5%的受調者給出了的反饋。這5%代表什麼意思呢?是指受調總人數的5%(那麼總共是226人)呢,還是指感到後悔的人(總共102人),抑或是把Java作爲主要開發語言的人(總共是38人)?不管怎樣,我不認爲這是一種可供開發者參考的趨勢。他們感到後悔的大部分原因都是老調重彈,比如“Java似乎正在被淘汰”、“Java就是現代編程語言的COBOL”、“Java代碼又臭又長,太難學了”。

報告作者強調:“Oracle把重心轉向了企業Java,並放棄了對OpenJDK的支持,導致Java不確定性驟增。儘管Red Hat的挺身而出給了Java一個未來,但那些長期依賴Java的人仍然十分擔心”。

但其實上面這句話說的並不對。Oracle絕對沒有不再爲Java提供支持。Oracle確實改變了Oracle JDK的交付方式,但仍然可以免費下載使用。一些提供商(比如Azul)仍然在提供舊版本JDK的更新,既有免費的,也有商業付費的。Red Hat是OpenJDK的極力支持者,來自Red Hat的Andrew Haley現在是OpenJDK 7、8和11項目的負責人。Oracle仍然在主導OpenJDK當前版本的發佈事宜。

24歲的Java在各大最受歡迎語言調查(比如TIOBE、RedMonk,等等)中仍然名列前茅。在過去幾年中,我們也看到了其他一些編程語言快速崛起,它們都聲稱要取代Java。最顯著的例子要數Ruby on RailsScalaKotlin了。

爲此,我最近在思考一個問題,那些肩負Java平臺發展重任的人,比如Mark Reinhold、Brian Goetz和John Rose,他們的處境究竟有多難?在這裏,我要引用14世紀詩人John Lydgate的一句話:“你可以一直取悅某些人,也可以在某些時候取悅所有人,但你不能一直取悅所有人”。

Java之父James Gosling把Java說成是藍領的編程語言,意思是說,Java是幫助開發者完成任務的一個利器。在這方面,Java無疑是成功的。

難就難在如何演化這個平臺。該如何在不讓另一部分人感到不爽的情況下對Java做出一些修改呢?修改是爲了取悅一部分人,但另一些人可能更喜歡原來的東西。

現在讓我們回過頭來看看“Java代碼又臭又長,太難學了”這句話。這確實是Java代碼飽受詬病的地方,因爲Java有太多的模板代碼,太囉嗦了。

在過去二十年中,Java在這方面做出了很多改變來緩解(如果說還算不上解決的話)這個問題。Java 5引入的註解極大簡化了企業開發,因爲可以使用依賴注入了。我相信現在開發Web服務的人沒有不使用註解的。Java 8引入的lambda表達式和Stream API讓集合的處理變得更簡潔。Coin項目也帶來了一些小的幫助,比如多個catch和try-with-resources。

但與Kotlin相比,Java仍顯囉嗦。Kotlin開發者的優勢在於他們不需要考慮已有代碼的兼容性問題,但Java開發者卻不可以。

個人而言,我認爲Java作爲一門編程語言最強大的地方在於它的可讀性。人們閱讀代碼的時間顯然比寫代碼的時間要長得多,相信大部分開發者都會同意這個觀點。所有的開發者在某些時候都要去維護別人寫的代碼。代碼越容易讀懂,修復bug或改進功能就越容易。有一次,我收到了一個修改一個Perl應用程序的任務。這個程序並不算大,打印出來只有8頁,但因爲Perl語法密度太大,我一下子覺得它只是一門適合用來寫代碼的語言,但寫出來的代碼並不容易讀懂。所以,有時候囉嗦一點也不見得是壞事。

最重要的是,Java還在不停地演化。在新的發佈週期之下,Java前進的步伐似乎慢了一些。但我們確實也看到Java不斷推出新特性,即使很多都是小改進,卻都讓開發者的生活變得更美好。

向Java中添加大的特性需要更長的時間,因爲這種事不能掉以輕心。Java 13中將帶來switch表達式在Java 12中已經作爲一個預覽特性提供。預覽版讓開發者可以體驗一下新特性,並提供反饋,以便後續加以改進。

Amber項目繼續給Java語法錦上添花,在未來的版本中,Amber會有更多的東西被加入到Java中。

不管你喜愛還是討厭Java,Java都會在OpenJDK大神們的努力呵護下變得更好,成爲這個星球上最受歡迎的開發平臺。

原文鏈接:

https://www.azul.com/love-it-or-hate-it-java-continues-to-evolve/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章