Java 按技術採用生命週期分爲:創新者、早期採用者、早期大衆、晚期大衆。
- Java 13 處於創新者階段,Java 11 處於早期採用者階段,Java 8 處於晚期大衆階段。Java 11 將是未來 Java 用戶的最可能選項;
如果一個公司對大堆棧 GC 能力、延遲 SLA 等方面要求沒有那麼高,就沒有足夠動力去做相關升級,也未必有技術力量解決版本評估、兼容性修正等現實問題;
Java 新版本升級在中國的宣傳還是不夠,如果很多企業看不到技術升級的紅利,勢必也影響升級的積極性。
- OpenJDK 處於創新者階段。OpenJDK 很可能被認爲是一種退⽽求其次的選擇。
雖然國內很多頭部廠商都在定製 OpenJDK,但是目前定製 OpenJDK 被採用範圍還都有限,主體使用還是 Oracle JDK(根據《JVM 生態系統報告 2018》調查顯示,70% 的開發者選擇使用 Oracle JDK,21% 的開發者選擇使用 OpenJDK);
- 非 Hotspot JDK 生產實踐——Graal VM、IBM OpenJ9 處於早期採用者階段。
Graal VM 目前還尚不可知其兼容性情況以及明確的商業化條款;
Graal VM 的部分技術,例如,基於 Java 語言開發的 JIT 引擎,可能會成爲未來 OpenJDK 的基礎技術;
- Lambda /Stream 處於晚期大衆階段、Vector API 處於創新者階段。
Lambda 語法以及 Stream API 也在開發人員的⽇常⼯作中⼴泛地運用,並且沒有看到語法回退的趨勢;
Vector API 等前沿特性,有能力的公司有限,抑制了對其有需求的公司或者場景。
- Kotlin 處於早期大衆階段,Scala 和 Groovy 處於晚期大衆階段。
Groovy 已快成爲明日黃花,往昔的光芒逐漸地被後起之秀 Kotlin 替代;
Scala 在適合的領域做王者就夠了,主流不主流沒那麼重要;
Kotlin 被谷歌強推,谷歌支持的基本上都成功了,但是對 Kotlin 未來發展空間還是表示懷疑;
- Spring Boot 和 Spring Cloud 進入晚期大衆階段;ServiceComb 處於早期採用者階段;Apache Dubbo 處於晚期大衆階段;Tars 處於早期大衆階段。
微服務技術處於早期大衆與晚期大衆之間,新的微服務開發框架需要技術突破和創新,不然已經難有一席之地;
技術多元化的今天,支持多語言的微服務開發框架是個必須品。
創新者 | 早期採用者 | 早期大衆 | 晚期大衆 |
---|---|---|---|
Java 13 | Java 11 | Kotlin | Java 8 |