BT

你的观点很重要! 快来参与InfoQ调研吧!

InfoQ观点:Java EE的未来

| 作者 Charles Humble 关注 284 他的粉丝 ,译者 薛命灯 关注 11 他的粉丝 发布于 2017年3月6日. 估计阅读时间: 6 分钟 | ArchSummit社交架构图谱:Facebook、Snapchat、Tumblr等背后的核心技术

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

作为InfoQ下一年编辑关注点审核工作的一部分,我们挑选了Java作为深入探讨的主题。我们借用了Geoffrey Moore在他的经典书籍《跨越鸿沟》里的所描述的模型,这个模型贴切地概括了技术的生命周期,它包含五个阶段:创新者(Innovators)、早期采用者(Early Adopters)、早期大众(Early Majority)、后期大众(Late Majority)和落后者(Laggards)。Moore的模型在早期采用者和早期大众两个阶段之间引入了一个大缺口,早期采用者是真正愿意冒着风险使用新技术的人,而早期大众在确认新技术能够提升生产效率之前是不会采取行动的。

从下图可以看出Java技术的整体趋势:

我们可以看到,Java SE仍然保持着它的健康度,它仍然是一个被广泛使用的企业计算编程语言。Java 9有望在今年夏天发布,届时将带来Jigsaw和JShell REPL。而Java 10的开发工作已经在进行当中。我们相信Java仍然是构建大规模企业应用的一个很好的选择,最起码现在人们不希望Java走出生产环境。

说到基于JVM的编程语言,不得不提到Scala和Clojure。不过从Scala的受欢迎程度来看,它的采用率或许已经达到了最顶峰。而在Java 8推出Lambda功能时,Scala的受欢迎程度有轻微的下降。我们认为Scala还未能跨越Moore模型里的“鸿沟”,所以它仍然处在早期采用者阶段。我们不认为它会达到大众阶段。

Clojure一如既往的好,作为Python的有力竞争者,面向数据的特性让它处在一个很有利的位置上,不过它不像是一门会被广泛采用的语言。

作为Java之外的选择,Groovy仍然是很受欢迎的脚本语言,同时,JetBrain的Kotlin似乎在Android开发方面为自己找到了一个稳固的位置,不过这两门语言都无法动摇Java的统治地位。

可以说,Java SE形势一片大好,但对于Java EE来说却不是如此。我们在考虑要不要把Java EE放入“落后者”这一类,不过最近的一些迹象表明,它应该可以被放在后期大众里,这要归功于Java EE底层的那些技术。jClarity的联合创始人Ben Evans,同时也是InfoQ的编辑,他说:

我不得不说,Java EE是一个正在消褪的品牌,不过它的底层核心技术让情况看上去没有那么糟糕。

另一位编辑Chris Swan,同时也是CSC的CTO,他说:

Java EE有一些重要的规范,它们很有用。EJB作为Java EE的心脏,它把Java应用服务器推向了企业。Spring去掉了EJB的复杂性,“EE”变成了“在Java应用服务器上运行Spring”的代名词。传统的应用服务器市场(由几个大厂商所统治)正在被PaaS所代替(因为你不需要整套臃肿的应用服务器就能运行Spring应用),而企业对服务器厂商的“绑架”行为深感厌恶,同时PaaS提供商提供了更具竞争力的运营能力,从而加剧了这种情况的发生。

InfoQ之前报道过Gartner对技术走势的研究,Gartner在这方面比我们做得更为深入,而最近Gartner再次发表其观点,认为“Java EE和其它三层架构的框架,比如ASP.NET”正在走向衰退:

数字信息业务要求应用平台提供新的特性和能力,而Java EE没能赶上这趟班车。
负责应用基础设施现代化的领导者们应该想办法应对Java EE的衰退问题。
到2019年,只有不到35%的新应用会被部署在Java EE应用服务器上。

不到35%,也就是差不多三分之一,不过我们认为尽管Java EE应用服务器还会存在,但只会被用于运行遗留的系统。

不过对于Java来说,还是有一些好消息的。一些强有力的框架为构建微服务提供了更多的选择,Pivotal在这方面一路领先,它为微服务提供了一整个技术栈。Spring Boot内嵌了Tomcat、Jetty或Undertow,可以方便快速地用它来构建独立运行的Spring应用。Spring Cloud由美国的Netflix和中国的阿里巴巴共同支持,为Spring Boot加入了很多强大的云组件,比如服务发现、外部配置、回路断路器和负载均衡。Pivotal Cloud Foundry、IBM的Bluemix和SAP的HANA为此提供了商业支持。

除此之外,还有很多其他的可选方案。其中有三个值得关注,它们分别是Lightbend的Lagom、Eclipse Vert.xRatpack,其中Lagom是基于Play和Akka的。而Akka所使用的actor模型也非常有意思。

我们注意到,Oracle曾经声称要在今年的Java EE 8里将Java EE带入云端,并具备基本的微服务能力,不过Oracle并未透露更多相关细节。Java EE 9有望在2019发布,不知道在未来的这一两年,Java世界能否发生一些不一样的变化。

MicroProfile.io最近加入了Eclipse Foundation,广大的Java EE社区把工作转向了MicroProfile.io。

以上观点并不代表我们将对Java EE开发失去兴趣,或者说它将会消失。我们只是认为,对于构建现代化的系统,我们总是会有更好的选择。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

疑问 by Li ShouQing

Spring Cloud由美国的Netflix和中国的阿里巴巴共同支持?从哪体现出来阿里巴巴的?

疑问 by zhang ed

Spring Cloud跟阿里巴巴有一分钱关系吗?建议编辑修改

疑问 by zhang ed

原文是“ Spring Cloud, supported by Pivotal's strong relationship with Netflix in the US and Alibaba in China amongst others” 这怎么就翻译的

Re: 疑问 by 薛 命灯

阿里和Pivotal在Greenplum云服务上是有合作的

Re: 疑问 by 薛 命灯

阿里和Pivotal在Greenplum云服务上是有合作的

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

5 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT