更多课程 选择中心

Java培训
达内IT学院

400-111-8989

2020年Java发展趋势情况分析

  • 发布:Java培训
  • 来源:Java新闻
  • 时间:2020-04-01 14:12

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会是第一个)。

免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Java是世界第一大编程语言,来看看它的发展史
下一篇:Java应用在哪里?
Java编程地位不可撼动的12大理由

Java编程地位不可撼动的12大理由

Java是未来的第一编程语言吗?

Java是未来的第一编程语言吗?

为什么互联网行业薪资高?

为什么互联网行业薪资高?

Java开发的10大应用领域

Java开发的10大应用领域

  • 关注微信公众号

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 视频学习QQ群

    添加QQ群:1143617948

    免费领取达内课程视频学习资料

Copyright © 2018 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
贵州省

福建省

  • 达内厦门软件园中心
广西省

海南省