【編者按】本文做者爲資深碼農 Tim Spann,主要講述 Java 讓人沒法抗拒的衆多優勢以及一些些缺陷。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,如下爲正文。html
早在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取代,但不是如今)。java
JVM是強大的,運行着各類幾近實時/大數據和大型的網站。數量龐大的公司仍然在企業級和Web應用中使用它。 AOL已經推出了一個很是不錯的Java 8庫。Spring Boot是一個很棒的快速開發Java的庫。程序員
儘管筆者全部的Spark編碼都在Scala中完成,但我仍然須要Java Maven資源庫。數以萬計的Java庫是驚人的。它們適用於Scala和JVM上的其餘語言。此外,還有不少來自Lightbend 和Pivotal,強大且精簡,貫徹12要素理念的微服務以及輕量級的庫。docker
而且,不少供應商都提供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