聊聊JAVA EE最近这点事

去年的一年是云计算落地的一年,也是微服务兴起,各种微服务平台红红火火建设的1年,而像JAVA EE 规范 这种很多年的话题很难吊起大家的胃口;不过自从Garner的一份报告,又给了JAVA EE一记重击:

参考网址:https://www.gartner.com/doc/3522917/market-guide-application-platforms

这个报告的内容是什么呢?

业务方案需要应用程序平台提供新的特性和功能,而Java EE已经跟不上发展的步伐了。

负责应用程序基础设施现代化的应用程序负责人应该制定一种新的策略,以应对Java EE的衰退。

到2019年,在所有新增的业务应用程序中,部署在Java EE应用程序服务器中的将不足35%。

这种论调一时间众说纷纭,举个例子,这几年新兴的巨头Pivotal公司,就拿这个大做文章,力挺了这一个报告:

关于Java EE以及传统应用服务器的使用下滑,业内有许多讨论。但是,真实的情况是原生云架构的崛起。Gartner每天都在全球范围内和CEO及CIO进行交谈,他们已经敏锐地意识到这种向原生云的重要转变,并建议他们的客户针对已有的应用程序组合推行一种现代化的策略。关于原生云架构的崛起,Gartner的独立研究和其他顶级研究公司(如Forrester和Redmonk)的调查结果类似


Pivotal公司如果大家不了解的话,可以重点学习一下:

Pivotal公司主要的方向是PAAS平台,大数据网格运算,云平台相关技术,并配合投资这家公司的硬件Iaas技术EMC,VMWare,可以完成的搭建一体化的自下而上的架构;

而Pivotal公司之所以这么有权威性,就是其领导地位,我们了解的spring,tomcat,cloudfoudry等等都是这家公司在后面默默的支持,而这两年的spring boot的微服务架构的兴起,后面的推手也是这家公司;


其实到这里,我们可以看到,抛开云计算这种原生架构和微服务架构不说,单说传统企业级应用,以Pivotal为带头的spring和Oracle带头的JAVA EE,有点貌似形成"分庭抗礼"的感觉了,所以,我们不难得出Pivotal公司能发表这样的言论;


Pivotal之所以硬气是因为该公司掌管的这些开源项目,雇佣的一大群committer,例如redis的leader,cloudfoundry的提交者,包括tomcat社区的老大也都是这个公司的,spring更不在话下了,因此Pivotal可以在一定程度上去主导整个企业应用的走势,不难看出之所以敢叫板JAVA EE是有原因的;


但从规范上进行分析,其实Pivotal的Spring社区和Oracle的JAVA EE社区二者并不是类似java 和 .net这种技术体系不兼容的死对头,首先二者都是使用java,其次即使对于JAVA EE规范的使用,二者也是如下图:

类似于servlet,JPA,CDI,DI,BeanValidation,JAX-RS等这些规范,Spring都已经实现了,二者实际是一个交集,互相帮助,spring社区推动JAVA EE规范进步的一个助推者,可以这么说,其实就是一伙的;

我们可以看到,马上要发布的JAVA EE8已经对JSONP,MVC等spring的东西纳入到了JAVA EE的新规范中来,如上面的红色箭头;

可以这么说,假以时日,Spring除了自己特有的一些自定义的东西之外,大部分实现都是JAVA EE规范的标准实现;


从这个角度来看,其实二者应该不矛盾才对,但是为什么现在不仅仅是Pivotal,甚至就连JAVA EE社区的小程序们都对JAVA EE不满;

其导火索就是Oracle撤去了JAVA EE开发小组,撤去该组可以代表这Oracle自身对JAVA EE的赢利能力存在怀疑,我们可以从Weblogic的销量就可以看到,连年下降,而Oracle公司干这事儿也不是第一次了,对于那些被甲骨文收购的开源项目,这样的结局似乎成了一种宿命。从OpenSolaris到OpenOffice.org,都是这样的命运。这回轮到了Java头上,更准确的说,是Java企业版(Java Enterprise Edition,Java EE);

OpenSolaris和OpenOffice.org两个名字大概很多人都没听说过,但Java EE可是每个人都接触过的,作为一种服务器端技术,Java EE在全世界驱动着数以百万的网站和企业应用。甚至在许多不是基于Java的应用中,Java EE也扮演着不可或缺的角色。

一些曾在甲骨文参与Java EE开发的员工曾在Java社区上透露,他们已经被分配到了别的部门。一些Java EE开发者们想要自立门户建设Java平台的言论也不是一两天了,他们想要自己实现java平台,摆脱对甲骨文手中这个20年历史的软件平台的依赖。尽管如此,尽管公司内负责管理Java标准的成员明确要求甲骨文就Java EE的未来做出规划,甲骨文仍然是一言不发。


与此同时,基于此情况,一个组织就应运而生了,这个就是JAVA EE 守护者。

随着去年Oracle对Java传教士进行裁员,以及更早前宣布将暂时停止继续为GlassFish Server发布大型版本更新并对相关支持进行限制,一群Java标准的支持者开始以“Java EE守护者”的身份自居,并通过一个章程宣告他们将努力拯救Java EE。

Java EE守护者是名副其实的Java权威人士,其成员包括“Java之父”James Gosling、前任技术传教士Reza Rahman,以及其他很多知名的Java技术人员。

这个群体的创始人,Java EE/GlassFish前任传教士Reza Rahman 年初从Oracle离职后,Rahman成立了Java EE守护者联盟,意在推动Java EE继续发展,尤其是:

  • 宣传Java EE 8。

  • 为Java EE 8 JSR提供支持。

  • 游说Oracle履行有关Java EE 8的承诺。

  • 设法将停滞的Oracle JSR转手给其他供应商。

Java EE守护者联盟提供的证据证明Oracle在Java EE 8的发展方面全无进展,并鼓励Java社区签署请愿书,该请愿书将递交给Larry Ellison。

虽然受雇于Oracle,这些守护者“步兵”依然在努力推动Java技术继续发展。然而他们提供的统计数据显示出Java EE开发热潮正面临严重的衰退。从他们网站上提供的图表中可以很清楚地看到,问题的解决数量和版本的提交数量均有双双下滑的趋势。

按照Oracle的辩解,该公司似乎已经将未来发展方向全面转向云计算。

虽然Java EE守护者也认同云计算的重要性,但同时他们也表示:

尽管如此,依然有越来越多的证据表明Oracle正在非常明显地忽视Java EE,逐渐削弱娴熟的Java EE开发者所建立的完善生态系统。除非情况很快出现转机,否则无论按照最初的承诺是否能顺利发布,Java EE 8的交付很可能变得遥遥无期。

Oracle为何采取这种忽视的态度,这种态度又到底会持续多久,这些事情还很难说。就算面对最“亲密”的合作伙伴,Oracle也没有透露自己的动机,只是留下整个社区自生自灭。有一种令人非常不安的可能性认为,Oracle这样做是为了逐渐脱离基于开放式标准的协作式开发方法,转为追求一种高度专有的单方向方法。

就在一天前,在twitter的账号上,Reza Rahman开启了一个调查,

大家的感觉还是41%的fading。。。

当然,我们看JAVA EE这群守护者还是很努力的:


最后说说笔者的看法,JAVA EE其实到了Oracle手中,确实没有发挥领导者的作用,导致了目前JAVA EE进展很低,没有什么作为,还不如将这个领导权交给别人,如google,provtal这样的公司去做;

但我们至少看到,随着请愿书,JAVA EE守护者联盟的成立已经有了作用,JAVA EE8已经提前发布了(虽然还是没有亮眼的东西),microserviceProfile也已经顺利推进了,但是我相信经过他们的努力,JAVA EE一定会回到正轨中,如尽快衔接与云PAAS的接口对接等等;

至于Spring和JAVA EE之争,我是聊什么spring要干掉JAVA EE,现在谁还用JAVA EE都用spring,,这些调调,觉得没有必要谈这个了,前面已经说了,二者是相辅相成的东西,一个是规范,一个是实现,除非Spring也搞一个规范,做到JCP这种级别,与JAVA EE竞争,只要Spring还有1天用这些规范,那二者就不是竞争关系,我相信即使未来都是spring boot这种微服务主导,我相信microserviceProfile也会有所参考的;

另外,对于云计算打败JAVA EE一说,也不太对,我们了解docker-kubernate这种原生模式,其实在docker镜像中,还是套jvm,jvm上面还是运行tomcat,jetty等轻量级的应用服务器,你能说云计算起来后,JAVA EE就没用了吗?肯定不能。至少servlet还在用

总结一下,其实JAVA EE这个处境全怪Oracle也不现实,虽然大部分责任在它身上,但微服务和云计算的兴起,其模式确实让JAVA EE应用服务器很多功能,如集群,负载,包括JCA,EJB等n种规范有了更好的替代,而Oracle又没跟上,所以目前落的这个结局我觉得也是情理之中的;


好吧,说来说去,最后还是留一句话把,祝JAVA EE好运吧,JAVA EE加油!

本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院