的確,Java存在缺陷。但是……

OneAPM官方技術部落格發表於2016-05-06

【編者按】本文作者為資深碼農 Tim Spann,主要講述 Java 讓人無法抗拒的眾多優點以及一些些缺陷。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,以下為正文。

早在90年代中期,筆者在E&Y工作時,就開始使用Java程式設計,那是我使用的還是Java 1.0版本。HotJava是當時唯一的書,而且只有語言規範。當時,Java是祕密的流行語言。非常前衛,比C的語法更進步,比C++更安全。可以在UNIX,Windows,Linux,Mac或set-top中執行,非常驚人。它足夠強大,許多公司都使用Java編寫瀏覽器,伺服器,引擎,規則引擎,庫,框架。當時的Java可謂風靡一時。現在,它的增長變緩。但是,圍繞Java的開發環境(Eclipse),伺服器(Hadoop生態系統),大資料,以及庫的數量與規模,都是相當驚人的。

Java仍然在Android中使用(未來可能被Swift取代,但不是現在)。

JVM是強大的,執行著各種幾近實時/大資料和大型的網站。數量龐大的公司仍然在企業級和Web應用中使用它。 AOL已經推出了一個非常不錯的Java 8庫。Spring Boot是一個很棒的快速開發Java的庫。

儘管筆者所有的Spark編碼都在Scala中完成,但我仍然需要Java Maven資源庫。數以萬計的Java庫是驚人的。它們適用於Scala和JVM上的其他語言。此外,還有很多來自Lightbend 和Pivotal,強大且精簡,貫徹12要素理念的微服務以及輕量級的庫。

並且,很多供應商都提供Java支援:Oracle,IBM,HPE,EMC,VMWare,Hortonworks和Cloudera。新的庫和出色的工具每天都在出現。如果你在GitHub搜尋新的Java庫和專案,你會發現很多不錯的選擇,涵蓋了方方面面的內容。

如果你想開發物聯網,Java語言到處都是。

成千上萬的開發人員,數以百計的諮詢公司,全球2000強中的大多數企業,都在進行Java開發,並擁有大量的Java資產。

它是擁有最新特性的最酷的語言嗎?不是,但是每個Java版本都匯聚了現有語言的精髓。我喜歡Scala,Go 和Node.JS。但是,當我想寫一個人人都可以閱讀,能在每一個平臺執行的(例如,無處不在的Tomcat)程式時,我會選用Java進行編寫。每種雲,每種PaaS(平臺即服務),包括AWS,Google,CloudFoundry, Heroku,都支援Java。在虛擬機器,伺服器,膝上型電腦,Docker或Rocket容器上安裝並執行Java伺服器是非常簡單的。使用Spring Boot,SparkJava,DropWizard,Ninja,Play等框架,你就可以編寫簡潔的微服務和優秀的程式碼。

Java是冗長的,但很容易閱讀。而維護程式碼是程式設計時最重要的事情,即使你所編寫的程式碼最終會被取代。測試程式碼為下一次迭代或應用發版,提供了良好的參考文件。

Java會步Cobol後塵嗎?有可能,但Cobol仍在使用中。而Java至少將在企業中再流行20年。

我會使用Scala和Go,或者其他一些語言嗎?當然會。Java會消失或失寵嗎?短期內不會。如果Java消失了,那Android,Hadoop,IoT就得跟著消失。而實際上,你只需要一種廣泛應用的語言以及會用這種語言程式設計的人,就夠了。也許Node.JS更適合前端,Go更適合網路伺服器, Scala更適合Spark。但是,對於企業而已,Java是更不容易出錯的選擇。雖然,的確有許多糟糕的程式設計師,許多混亂的程式碼,你甚至會指責Java沒有迫使人們編寫更好的程式碼(Scala在這方面做得更好)。但是,Java就是自由的象徵。Java可以在任何平臺自由執行,做任何事情,使用任何你想要的庫,編寫任何專案。Java仍然是大學裡教授的主要語言,並且存在於很多優秀的庫中,比如Stanford NLP。

筆者期待積極的討論

Java的確存在缺陷,但這些缺陷並不妨礙它在世界上最主要的公司和系統內全天候地完成工作。

OneAPM 能為您提供端到端的 Java 應用效能解決方案,我們支援所有常見的 Java 框架及應用伺服器,助您快速發現系統瓶頸,定位異常根本原因。分鐘級部署,即刻體驗,Java 監控從來沒有如此簡單。想閱讀更多技術文章,請訪問 OneAPM 官方技術部落格

本文轉自 OneAPM 官方部落格

原文地址:https://dzone.com/articles/java-and-the-superfriends-stronger-than-one

相關文章