Java微服務(wù)框架大洗牌,SpringBoot和SpringCloud進(jìn)入晚期大眾階段。這表示它們的采用率增長(zhǎng)正在減緩(因?yàn)槭袌?chǎng)趨于飽和),而不是說開發(fā)者會(huì)棄用這些框架。Helidon和Microprofile進(jìn)入早期采用者階段,不過我們認(rèn)為vert.x會(huì)因?yàn)橄鄬?duì)利基的市場(chǎng)無法跨過早期采用者階段。
以下內(nèi)容整理自InfoQJava板塊編輯的內(nèi)部溝通郵件,提供了更多有關(guān)我們?nèi)绾沃贫↗ava趨勢(shì)圖的背景信息。
DanielBryant,獨(dú)立技術(shù)顧問,Datawire產(chǎn)品架構(gòu)師,InfoQ新聞板塊主管:
又到了更新Java趨勢(shì)圖的時(shí)間。我迫不及待地想要看到我們?cè)?018年所跟蹤的技術(shù)是否出現(xiàn)在了趨勢(shì)圖正確的位置上,以及新增或移除了哪些技術(shù)。
首先是創(chuàng)新者階段的變化:
將Java11改為Java12/13;
將OpenJ9移到早期采用者階段;
加入Java模塊化系統(tǒng);
加入Quarkus。
早期采用者階段的變化:
將Spock移到晚期采用者階段;
將微服務(wù)框架移到晚期大眾階段,但Lagom和Microprofile除外?
加入Helidon。
ErikCostlow,軟件架構(gòu)師,專注于安全和Java領(lǐng)域:
將Java8移到落后者階段。Java8是在2014年發(fā)布的,Oracle已經(jīng)不再為它提供公共免費(fèi)支持。
Java11(LTS版本)仍然待在早期采用者階段;
Java13(非LTS版本)進(jìn)入創(chuàng)新者階段;
開發(fā)者對(duì)Graal本身并不是很感興趣,但他們需要這些東西:
1、可以將Java編譯成本地應(yīng)用(本地鏡像);
2、多語言支持(例如RubyTruffle)。
3、Graal本地鏡像有一個(gè)問題——如果Java或其他JVM供應(yīng)商也提供了靜態(tài)編譯那會(huì)怎樣?本地鏡像并沒有通過TCK。關(guān)鍵問題是其他JVM供應(yīng)商可以這么做嗎?如果他們這么做了會(huì)怎樣?
非HotSpot虛擬機(jī)除了Graal和OpenJ9,還有Excelsior、Azul、Liberica、Corretto、AlibabaDragonwell、AdoptOpenJDK、RedHat,等等。
JVM上的Node已死。
將測(cè)試框架移到早期大眾階段。
將SpringBoot移到晚期大眾階段。
將“JavaEE到JakartaEE的遷移“放在創(chuàng)新者階段,我覺得這會(huì)很有意思。
現(xiàn)在有太多的Java發(fā)行版。我希望在創(chuàng)新者階段能夠有與這個(gè)問題相關(guān)的內(nèi)容:如何大規(guī)模管理這些發(fā)行版或者如何在不同團(tuán)隊(duì)、系統(tǒng)之間管理好它們。如果一個(gè)應(yīng)用程序可以被編譯成本地應(yīng)用,那么誰來負(fù)責(zé)給”JRE“打補(bǔ)???這又意味著什么?
DustinSchultz,首席軟件工程師,Pluralsight作者,技術(shù)布道師:
我贊同關(guān)于創(chuàng)新者階段的說法。
但我不認(rèn)為Spock會(huì)跳出早期采用者階段,畢竟我還沒有看到它被大量采用。
除了Vertx,我會(huì)將其他微服務(wù)框架移出早期采用者階段……或許Lagom可以留下。我不確定它們?cè)谝院髸?huì)不會(huì)跳出這個(gè)階段。
或許可以將Groovy移到晚期大眾階段,因?yàn)樗谋憩F(xiàn)太一般。
CharlesHumble,InfoQ首席編輯:
我同意你們的大部分說法。Java模塊化系統(tǒng)采用也是一個(gè)很有趣的話題。我敢肯定OSGI擁護(hù)者對(duì)于將它放在創(chuàng)新者階段會(huì)有意見,但這樣做可能是對(duì)的。
我想可以將Clojure移到晚期大眾階段。當(dāng)然,人們還在用它,但我感覺到它的使用量在下降,而且它本身面向的就是利基市場(chǎng)。
我會(huì)將Ceylon移掉。它一直以來都沒有獲得太多關(guān)注,而且我不認(rèn)為進(jìn)入Eclipse會(huì)給它帶來多大幫助。這個(gè)項(xiàng)目的活躍度很低,過去6個(gè)月只有10個(gè)代碼提交。
測(cè)試框架的趨勢(shì)看起來相當(dāng)穩(wěn)定。我們要把它移掉嗎?從采用率來看,我給它們排個(gè)順序:JUnit、TestNG/Cucumber、Spock,但似乎變化不大?
SmartBear最近收購(gòu)了Cucumber,可能會(huì)促進(jìn)它的發(fā)展,但即使是這樣,我仍然傾向于把它們移掉。
人們似乎對(duì)JVM上的Node不感興趣?我想可以把它移掉。
我很想把Kotlin移到早期大眾階段,它是我近來最經(jīng)常聽到的一門JVM編程語言,這要得益于Android開發(fā)的流行??梢哉f,它已經(jīng)越過了鴻溝,但仍然落后于其他編程語言,比如Groovy、Swift或Go語言。
我覺得Scala可以留在晚期大眾階段,人們會(huì)逐步棄用它。
關(guān)于Java,我也不確定該怎么說。我所知道的是,非LTS版本的采用量非常有限,它們或許可以被放在創(chuàng)新者階段,但很奇怪的是,它們當(dāng)中有些已經(jīng)進(jìn)入EOL階段。不管怎樣,我認(rèn)為Java8仍然處在晚期大眾階段,Java11在早期采用者階段,Java11在創(chuàng)新者階段?
BenEvans,NewRelic首席工程師,JVM技術(shù)架構(gòu)師:
我非常贊同有關(guān)Java非LTS版本的說法。來自生產(chǎn)環(huán)境的數(shù)據(jù)表明,Java11部署量很穩(wěn)定,并有了5%左右的增長(zhǎng),我覺得它應(yīng)該處在早期采用者階段。
Ceylon絕對(duì)可以移掉,它從來就沒有得到過足夠的關(guān)注,它的份額被Kotlin吃掉了。
Java8應(yīng)該留在早期大眾階段,現(xiàn)在仍然有很多服務(wù)是用Java8開發(fā)的,還有很多主流產(chǎn)品(例如Cassandra)不支持Java8以后的版本。我還沒看到有哪個(gè)主流產(chǎn)品放棄對(duì)Java8的支持(但我相信ElasticSearch會(huì)是個(gè))。
Java已經(jīng)是一門具有20多年歷史的老牌語言,雄霸編程語言排行榜榜首多年的Java目前也面臨著越來越大來自新興語言的挑戰(zhàn)和使用者們的批評(píng)。InfoQ英文站的編輯們按照技術(shù)采用生命周期的理論對(duì)Java在2020的發(fā)展趨勢(shì)做了分析,Java老矣,Java卻仍年輕。 ... [詳情]
學(xué)習(xí)Python有些人說簡(jiǎn)單,有些人說難,大部分都說Python簡(jiǎn)單易學(xué),那么零基礎(chǔ)如何學(xué)好Python?有哪些必須學(xué)的知識(shí)?學(xué)習(xí)的策略技巧有哪些?今天這篇文章將會(huì)給你啟發(fā)。... [詳情]
軟件測(cè)試有著巨大的發(fā)展前景,吸引很多學(xué)員前來學(xué)習(xí)軟件測(cè)試開發(fā),軟件測(cè)試工程師的職位經(jīng)驗(yàn)越豐富越吃香,所以今天我就為大家介紹軟件測(cè)試發(fā)展前景具體是怎么樣.... [詳情]
近年來Java招生非常火爆,在編程語言中是很占優(yōu)勢(shì)的,吸引了很多人去學(xué)習(xí),Java是一個(gè)非常熱門編程語言,學(xué)好JAVA并不難,大家認(rèn)真去學(xué)習(xí)和掌握好方法就一定能成功.... [詳情]
大家想成為正式的開發(fā)工程師是一件不簡(jiǎn)單的事情,因?yàn)橐?guī)范完善的開發(fā)周期到嚴(yán)格執(zhí)行和系統(tǒng)檢查,許多種開發(fā)高可靠性系統(tǒng)的技術(shù).現(xiàn)在我就來給大家介紹幾個(gè)好用的技巧,確保系統(tǒng)更加可靠地運(yùn)行并捕獲異常行為大有幫助... [詳情]
我相信很多人學(xué)習(xí)Java都是因?yàn)橹繨ava前景好,薪資高,但是大家知道Java主要有哪幾個(gè)方面嗎,我相信大家不是很了解,今天我就為大家簡(jiǎn)單的介紹一下.... [詳情]