java現在發展怎么樣?
時至今日,Java仍然在眾多使用場景中占據著舉足輕重的位置。那么,Java未來將如何發展呢?我們搜集了一些國外開發者對Java的趨勢判斷,以及他們認為現階段需要掌握的Java相關技能。
一、RedMonk創始人JamesGovernor
在不久的將來,我們可能會看到Quarkus(KubernetesNativeJava框架)等Java框架及其相關技術會越來越受到關注。例如,它可能是Vert.x,因為Java正在積極響應和參與容器革命。
二、JavaChampion,JavaOneRockstarConsultantAdamBien
有一個現象有點讓我驚訝,那就是與Spring相比,SpringBoot的受歡迎程度居然較低。另外,JPA(JavaPersistenceAPI),JavaEEAPI之一,被列為獨立項目,加上對SQL技能的強烈需求,都表明了Java市場對關系數據庫的持續興趣。
另外,Maven作為領先的構建工具,市場體現出了對Maven技能的強烈需求,而ApacheKafka雖然非常流行,但是并不是適用于所有項目的通用架構,所以市場需求反響不是很強烈。
作為一名JavaEE開發人員,如果想要在市場中具備強勁的競爭力,那么他需要掌握以下技能,JPA、SQL、JMS(Kafka也是一種JMS實現)、JAX-RS(REST)、Maven(JavaEE中的缺省值)、Git(事實上的標準)。
三、Netflix的高級軟件工程師AlexBorysov
如今,Spring框架和微服務體系結構實際上已經成為Java世界中的標準。但是,不斷發展的行業要求軟件工程師在掌握現有Java技能的基礎上,還要開發新的Java技能。ServiceMesh和serviceproxy正在改變微服務的開發方式,所以Java程序員也要積極學習Istio、Linkerd2或Envoy。另外,隨著越來越多的公司轉向公有云和混合云,擁有亞馬遜AWS、谷歌云平臺或微軟Azure的經驗非常重要。
Java領域中,反應式編程處于上升趨勢。雖然我認為它不會取代傳統的命令式編程,但是我們需要了解什么是反應式編程,反應式編程如何改變Java生態,以及一些反應式框架,例如ProjectReactor、RxJava、SpringWebFlux等。
在數據存儲方面,NoSQL和多語言持久性是當今工程師必備的Java技能。NewSQL的發展同樣值得期待,例如GoogleSpanner就是作為服務在生產環境中應用的一個最佳案例。
四、JavaChampion,SebastianDaschner
在企業Java項目中,我已經不太看得到SOA的需求,而Spring和SpringBoot在實際應用中經常同時使用,所以這時探究兩者的區別就不是特別有意義了。另外,我看到大家對各種云原生技術的興趣越來越大,如果這種趨勢繼續發展下去,相信未來幾年,Java也會變得更加有趣。
除了以上開發者,InfoQ首席編輯CharlesHumble也針對Java的未來發展趨勢發表了自己的看法,他認為:
Java模塊化系統采用也是一個很有趣的話題。我敢肯定OSGI擁護者對于將它放在創新者階段會有意見,但這樣做可能是對的。
我想可以將Clojure移到晚期大眾階段。當然,人們還在用它,但我感覺到它的使用量在下降,而且它本身面向的就是利基市場。
我會將Ceylon移掉。它一直以來都沒有獲得太多關注,而且我不認為進入Eclipse會給它帶來多大幫助。這個項目的活躍度很低,過去6個月只有10個代碼提交。
測試框架的趨勢看起來相當穩定。我們要把它移掉嗎?從采用率來看,我給它們排個順序:JUnit、TestNG/Cucumber、Spock,但似乎變化不大?
SmartBear最近收購了Cucumber,可能會促進它的發展,但即使是這樣,我仍然傾向于把它們移掉。
人們似乎對JVM上的Node不感興趣?我想可以把它移掉。
我很想把Kotlin移到早期大眾階段,它是我近來最經常聽到的一門JVM編程語言,這要得益于Android開發的流行。可以說,它已經越過了鴻溝,但仍然落后于其他編程語言,比如Groovy、Swift或Go語言。
我覺得Scala可以留在晚期大眾階段,人們會逐步棄用它。
針對不同版本的Java,CharlesHumble認為:“Java8仍然處在晚期大眾階段,Java11在早期采用者階段,Java11在創新者階段。”
希望對大家入門Java領域有所幫助。