Java趋势点评
對第?一部分中您所歸類的處于不不同階段的技術,請您逐?一做出如下點評問題包括:
某個技術為什什么要被劃在這個技術采?用?生命周期內?這個技術在國內的發展情況以及機遇和挑戰是什什么?
Java / JVM 語?言 - Java 8 已被業界普遍接受,?無論像 Spring Framework、Spring Boot,以及 Spring Cloud 這樣的現代 Java 框架,還是類似于 Vert.x、RxJava 或 Reactor 這類?小眾框架,均已構建在 Java 8 以及更更?高的版本之上。同時,Lambda 語法以及 Stream API 也在開發?人員的?日常?工作中?廣泛地運?用,并且沒有看到語法回退的趨勢。因此,Java 8 和Lambda/Stream 可歸類為“晚期?大眾”。 JVM 語?言 Scala 和 Groovy 已快成為明?日?黃花,往昔的光芒逐漸地被后期之秀 Kotlin 替代,故 Scala 和 Groovy 屬于“晚期?大眾”,?而 Kotlin 則納?入”早期?大眾“ 之流。然?而 Java 9 的被接受程度則沒有那么幸運,盡管我們等待它的到來已有數年年。 Java 模塊化作為 Java 9 核?心的特性,就我個?人?而?言,完全能夠理理解和接受它的設計。雖然模塊化增強了了模塊的隔離性,減少了了內存的 Footprint,然?而,它更更強的封裝性?無形之中增加了了管理理依賴的成本。所謂曲?高和寡,夸張地說,模塊化形同虛設。因此,應?用升級 Java 9 的效果相當于 Java API 以及 JVM 的更更新。同時,Oracle 宣布從 Java 9 開始,每半年年將更更新?一個 Java ?大版本。那么,更更多的?人會選擇 Java 11 這樣的?長期?支持(Long-Term -Support, LTS)版本,換?言之,Java 9/10 則成了了過渡版本(non?LTS) 1 。因此,Java 11將是未來 Java ?用戶的最可能選項,將其列列為“早期采?用者”。?至于 Java 13,最近有注意到該本版在新 GC 算法的提升以及 Socket 實現上的變化2 ,還是?非常令?人期待的,故排在“創新者” 之列列。除了了模塊化之外,Java 9 還有?大量量的 API 更更新,在偏開發側的部分,Flow API 可能是最有吸引?力力的,提供了了 Reactive Streams 3 標準接?口以及實現,并且內建了了 HTTPClient Reactive 實現。盡管 Spring 和 Eclipse 社區?大?力力的推?廣,并且 Java Lambda 以及Stream API 也流?行行開來,不不過對開發者?而?言,Reactive Streams 技術還是相對陌?生,將其放在 “早期?大眾“。同理理,Spring 引?入的 Reactor 框架也屬于“早期?大眾” 階段。雖然 RxJava
并?非 Reactive Streams 的實現,但是相較于前兩者?而?言,它在 Reactive 編程中的地位必然是有過之?而?無不不及的,故也在 “早期?大眾“ 之中。
OpenJDK - 由于 Oracle 宣布 2019 年年伊始,Oracle JDK 8 以及更更?高版本在服務器?端部署不不再免費,OpenJDK 則成為?大多數 Java ?用戶的選項。盡管 Oracle JDK 與 OpenJDK ?幾乎出?至于同?一家之?手,不不過OpenJDK 很可能被認為是?一種退?而求其次的選擇。對于具備?自主研發的企業,它們可能選擇在 OpenJDK 的基礎上,?自定義分?支繼續開發。在?一定程度上,Java 的發展?方向出現了了裂痕,所以未來仍存在著不不確定性,故將其放置于 “早期?大眾“
?非Hotspot JDK?生產實踐 - 按照 GraalVM 官?方的描述,GraalVM 將會是下?一代的 JVM 基礎設施,也是 Oracle 的重點項?目,能夠將傳統的 JVM 進程 native 化,那么未來 Java 的性能提升以及快速啟停則不不再遙遠,不不夠?目前還尚不不可知其兼容性情況以及明確的商業化條款,列列為“早期采?用者 應該是合理理的
不不同層次的主流框架
Java EE - 在 Java ?生態中,絕?大多數應?用直接或間接地使?用了了 Spring Framework,這個曾經以輕量量級著稱的框架,?目前顯然“名不不副實”,不不過巨?大的?用戶基礎,早已進?入“晚期?大眾”的?行行列列。相反,Java EE 規范或者重組后的 Jakarta EE 4 則寂寥許多。實際上,作為 J2EE 或 Java EE 的模仿者,盡管 Spring Framework 多半的特性和實現向JSR 5 參考。?一定程度上,Spring Framework 的流?行行“壓縮”了了 Java EE 以及 JSR 的認知空間,因此不不少的開發?人員不不知道 Java EE API 或者 JSR 的存在,尤其是年年輕的國內從業?人員。當然,Spring 也反哺了了少量量標準給 Java EE,?比如 JSR 330 6 ,因此,將Java EE 列列為 “晚期?大眾” 是毋容置疑的。值得?一提的是,Jakarta EE 在 Eclipse 基?金金會7 的帶領下能否再次“偉?大” 值得期待,后續未來 Jakarta EE 將是“創新者”成員
?網絡框架 - Java 的?網絡框架只有兩種,其?一是 Netty,其?二則是其他。如此描述也絲毫不不夸張,畢竟?大多數與?網絡相關的框架或中間件都和 Netty 多少存在關聯,如 ApacheDubbo、Spring 5 Web Server、Jersey 等,所以“晚期?大眾”的排?行行眾望所歸。
微服務框架 - Java 微服務框架的王者?非 Spring Boot 和 Spring Cloud 莫屬,進過數年年的?生產使?用,兩者早已屬于“晚期?大眾” 的技術棧。相對應地,Apache Dubbo 出現和開源的時間?比 Spring Cloud 早不不少,?無論是性能還是穩定性,相對于后者要優秀不不少,
因此,Apache Dubbo 也屬于 “晚期?大眾” 框架。不不過,最新的 Apache Dubbo ECOSystem(?生態系統)則基于 Apache Dubbo 衍進的 Cloud Native 解決?方案,?目前尚未枝葉茂盛,處于 “創新者” 陣營。?而?小眾 的 Vert.x 則由于編程模型以及 API 熟悉度等客觀條件所限,它不不得不不仍處于 ”早期采?用者”。類似,TarsJava 以及 ServiceComb 最近才出現,?用戶的認可度和穩定性稍微成熟,同樣處于 ”早期采?用者”。
國內是否在某個相對完整的領域,形成甚?至開始引領技術趨勢?
在國內的開源軟件中,Apache Dubbo(后?文簡稱 Dubbo)常年年受到業界的?青睞,并榮獲多次殊榮。個?人認為 Dubbo 有機會引領技術趨勢。Dubbo 從過去的?高性能RPC 框架,正在?走向 Cloud Native 的?生態系統(后?文簡稱 Dubbo ECO System)。具體執?行行的步驟也是 Dubbo 社區對 Cloud Native 的發展趨勢研判,?首單其沖的是 Dubbo 在 Spring Cloud場景下的整合。這部分?工作已在 Spring Cloud Alibaba 項?目中完成,作為項?目中的核?心成員,Dubbo Spring Cloud 可?無縫地替換過傳統 Spring Cloud OpenFeign,不不僅提供更更好的性能,并且具備更更多的負載均衡策略略和熔斷等特性。同時,靈活的擴展點和內建實現幫助 Dubbo 適應不不同語?言、環境和基礎設施。隨著 Dubbo 內核即將發布 Cloud Native(即將發布)特性 ,能夠將Dubbo 幫助獨?立于任意的基礎設施,實現 Dubbo(原?生)與 Spring Cloud(原?生)調?用互通,甚?至在 K8S 場景下。?無論 Dubbo 身處何處,統?一的編程模型幫助開發?人員快速和?高效地實現業務邏輯,達成 “Write Once, Run Anywhere” 的?目的。后續,Dubbo 在多語?言、Mesh 化 以及
Istio 的建樹將逐?一呈現。
?
總結
- 上一篇: Java的技术采⽤用⽣生命周期
- 下一篇: Java 网关-Servlet Gate