InfoQ觀點:Java EE的未來

李涇李大帥 7年前發布 | 12K 次閱讀 Java EE Java開發

作為InfoQ下一年編輯關注點審核工作的一部分,我們挑選了Java作為深入探討的主題。我們借用了Geoffrey Moore在他的經典書籍《跨越鴻溝》里的所描述的模型,這個模型貼切地概括了技術的生命周期,它包含五個階段:創新者(Innovators)、早期采用者(Early Adopters)、早期大眾(Early Majority)、后期大眾(Late Majority)和落后者(Laggards)。Moore的模型在早期采用者和早期大眾兩個階段之間引入了一個大缺口,早期采用者是真正愿意冒著風險使用新技術的人,而早期大眾在確認新技術能夠提升生產效率之前是不會采取行動的。

從下圖可以看出Java技術的整體趨勢:

我們可以看到,Java SE仍然保持著它的健康度,它仍然是一個被廣泛使用的企業計算編程語言。Java 9有望在今年夏天發布,屆時將帶來Jigsaw和JShell REPL。而Java 10的開發工作已經在進行當中。我們相信Java仍然是構建大規模企業應用的一個很好的選擇,最起碼現在人們不希望Java走出生產環境。

說到基于JVM的編程語言,不得不提到Scala和Clojure。不過從Scala的受歡迎程度來看,它的采用率或許已經達到了最頂峰。而在Java 8推出Lambda功能時,Scala的受歡迎程度有輕微的下降。我們認為Scala還未能跨越Moore模型里的“鴻溝”,所以它仍然處在早期采用者階段。我們不認為它會達到大眾階段。

Clojure一如既往的好,作為Python的有力競爭者,面向數據的特性讓它處在一個很有利的位置上,不過它不像是一門會被廣泛采用的語言。

作為Java之外的選擇,Groovy仍然是很受歡迎的腳本語言,同時,JetBrain的 Kotlin 似乎在Android開發方面為自己找到了一個穩固的位置,不過這兩門語言都無法動搖Java的統治地位。

可以說,Java SE形勢一片大好,但對于Java EE來說卻不是如此。我們在考慮要不要把Java EE放入“落后者”這一類,不過最近的一些跡象表明,它應該可以被放在后期大眾里,這要歸功于Java EE底層的那些技術。jClarity的聯合創始人Ben Evans,同時也是InfoQ的編輯,他說:

我不得不說,Java EE是一個正在消褪的品牌,不過它的底層核心技術讓情況看上去沒有那么糟糕。

另一位編輯Chris Swan,同時也是CSC的CTO,他說:

Java EE有一些重要的規范,它們很有用。EJB作為Java EE的心臟,它把Java應用服務器推向了企業。Spring去掉了EJB的復雜性,“EE”變成了“在Java應用服務器上運行Spring”的代名詞。傳統的應用服務器市場(由幾個大廠商所統治)正在被PaaS所代替(因為你不需要整套臃腫的應用服務器就能運行Spring應用),而企業對服務器廠商的“綁架”行為深感厭惡,同時PaaS提供商提供了更具競爭力的運營能力,從而加劇了這種情況的發生。

InfoQ之前報道過Gartner對技術走勢的研究,Gartner在這方面比我們做得更為深入,而最近Gartner再次發表其觀點,認為“Java EE和其它三層架構的框架,比如ASP.NET”正在走向衰退:

數字信息業務要求應用平臺提供新的特性和能力,而Java EE沒能趕上這趟班車。

負責應用基礎設施現代化的領導者們應該想辦法應對Java EE的衰退問題。

到2019年,只有不到35%的新應用會被部署在Java EE應用服務器上。

不到35%,也就是差不多三分之一,不過我們認為盡管Java EE應用服務器還會存在,但只會被用于運行遺留的系統。

不過對于Java來說,還是有一些好消息的。一些強有力的框架為構建微服務提供了更多的選擇,Pivotal在這方面一路領先,它為微服務提供了一整個技術棧。 Spring Boot 內嵌了Tomcat、Jetty或Undertow,可以方便快速地用它來構建獨立運行的Spring應用。 Spring Cloud 由美國的Netflix和中國的阿里巴巴共同支持,為Spring Boot加入了很多強大的云組件,比如服務發現、外部配置、回路斷路器和負載均衡。 Pivotal Cloud Foundry 、IBM的 Bluemix 和SAP的 HANA 為此提供了商業支持。

除此之外,還有很多其他的可選方案。其中有三個值得關注,它們分別是Lightbend的 Lagom 、Eclipse Vert.x 和 Ratpack ,其中Lagom是基于Play和Akka的。而Akka所使用的actor模型也非常有意思。

我們注意到,Oracle曾經聲稱要在今年的Java EE 8里將Java EE帶入云端,并具備基本的微服務能力,不過Oracle并未透露更多相關細節。Java EE 9有望在2019發布,不知道在未來的這一兩年,Java世界能否發生一些不一樣的變化。

MicroProfile.io 最近加入了Eclipse Foundation,廣大的Java EE社區把工作轉向了MicroProfile.io。

以上觀點并不代表我們將對Java EE開發失去興趣,或者說它將會消失。我們只是認為,對于構建現代化的系統,我們總是會有更好的選擇。

 

來自:http://www.infoq.com/cn/articles/enterprise-java-opinion

 

 本文由用戶 李涇李大帥 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!