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 |