2020年Java发展趋势情况分析
Java已经是一门具有20多年历史的老牌语言,雄霸编程语言排行榜榜首多年的Java目前也面临着越来越大来自新兴语言的挑战和使用者们的批评。InfoQ英文站的编辑们按照技术采用生命周期的理论对Java在2020的发展趋势做了分析,Java老矣,Java却仍年轻。
Java微服务框架大洗牌,SpringBoot和SpringCloud进入晚期大众阶段。这表示它们的采用率增长正在减缓(因为市场趋于饱和),而不是说开发者会弃用这些框架。Helidon和Microprofile进入早期采用者阶段,不过我们认为vert.x会因为相对利基的市场无法跨过早期采用者阶段。
以下内容整理自InfoQJava板块编辑的内部沟通邮件,提供了更多有关我们如何制定Java趋势图的背景信息。
DanielBryant,独立技术顾问,Datawire产品架构师,InfoQ新闻板块主管:
又到了更新Java趋势图的时间。我迫不及待地想要看到我们在2018年所跟踪的技术是否出现在了趋势图正确的位置上,以及新增或移除了哪些技术。
首先是创新者阶段的变化:
将Java11改为Java12/13;
将OpenJ9移到早期采用者阶段;
加入Java模块化系统;
加入Quarkus。
早期采用者阶段的变化:
将Spock移到晚期采用者阶段;
将微服务框架移到晚期大众阶段,但Lagom和Microprofile除外?
加入Helidon。
ErikCostlow,软件架构师,专注于安全和Java领域:
将Java8移到落后者阶段。Java8是在2014年发布的,Oracle已经不再为它提供公共免费支持。
Java11(LTS版本)仍然待在早期采用者阶段;
Java13(非LTS版本)进入创新者阶段;
开发者对Graal本身并不是很感兴趣,但他们需要这些东西:
1、可以将Java编译成本地应用(本地镜像);
2、多语言支持(例如RubyTruffle)。
3、Graal本地镜像有一个问题——如果Java或其他JVM供应商也提供了静态编译那会怎样?本地镜像并没有通过TCK。关键问题是其他JVM供应商可以这么做吗?如果他们这么做了会怎样?
非HotSpot虚拟机除了Graal和OpenJ9,还有Excelsior、Azul、Liberica、Corretto、AlibabaDragonwell、AdoptOpenJDK、RedHat,等等。
JVM上的Node已死。
将测试框架移到早期大众阶段。
将SpringBoot移到晚期大众阶段。
将“JavaEE到JakartaEE的迁移“放在创新者阶段,我觉得这会很有意思。
现在有太多的Java发行版。我希望在创新者阶段能够有与这个问题相关的内容:如何大规模管理这些发行版或者如何在不同团队、系统之间管理好它们。如果一个应用程序可以被编译成本地应用,那么谁来负责给”JRE“打补丁?这又意味着什么?
DustinSchultz,首席软件工程师,Pluralsight作者,技术布道师:
我赞同关于创新者阶段的说法。
但我不认为Spock会跳出早期采用者阶段,毕竟我还没有看到它被大量采用。
除了Vertx,我会将其他微服务框架移出早期采用者阶段……或许Lagom可以留下。我不确定它们在以后会不会跳出这个阶段。
或许可以将Groovy移到晚期大众阶段,因为它的表现太一般。
CharlesHumble,InfoQ首席编辑:
我同意你们的大部分说法。Java模块化系统采用也是一个很有趣的话题。我敢肯定OSGI拥护者对于将它放在创新者阶段会有意见,但这样做可能是对的。
我想可以将Clojure移到晚期大众阶段。当然,人们还在用它,但我感觉到它的使用量在下降,而且它本身面向的就是利基市场。
我会将Ceylon移掉。它一直以来都没有获得太多关注,而且我不认为进入Eclipse会给它带来多大帮助。这个项目的活跃度很低,过去6个月只有10个代码提交。
测试框架的趋势看起来相当稳定。我们要把它移掉吗?从采用率来看,我给它们排个顺序:JUnit、TestNG/Cucumber、Spock,但似乎变化不大?
SmartBear最近收购了Cucumber,可能会促进它的发展,但即使是这样,我仍然倾向于把它们移掉。
人们似乎对JVM上的Node不感兴趣?我想可以把它移掉。
我很想把Kotlin移到早期大众阶段,它是我近来最经常听到的一门JVM编程语言,这要得益于Android开发的流行。可以说,它已经越过了鸿沟,但仍然落后于其他编程语言,比如Groovy、Swift或Go语言。
我觉得Scala可以留在晚期大众阶段,人们会逐步弃用它。
关于Java,我也不确定该怎么说。我所知道的是,非LTS版本的采用量非常有限,它们或许可以被放在创新者阶段,但很奇怪的是,它们当中有些已经进入EOL阶段。不管怎样,我认为Java8仍然处在晚期大众阶段,Java11在早期采用者阶段,Java11在创新者阶段?
BenEvans,NewRelic首席工程师,JVM技术架构师:
我非常赞同有关Java非LTS版本的说法。来自生产环境的数据表明,Java11部署量很稳定,并有了5%左右的增长,我觉得它应该处在早期采用者阶段。
Ceylon绝对可以移掉,它从来就没有得到过足够的关注,它的份额被Kotlin吃掉了。
Java8应该留在早期大众阶段,现在仍然有很多服务是用Java8开发的,还有很多主流产品(例如Cassandra)不支持Java8以后的版本。我还没看到有哪个主流产品放弃对Java8的支持(但我相信ElasticSearch会是第一个)。
免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多2022-03-11
2021-03-24
2020-07-22
达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座