spring javaee_JavaEE还是Spring? 都不行! 我们呼吁新的竞争者!

spring javaee

如果您一直在Twitter上关注一些Java的重要人物,或者在Reddit上阅读了“新闻”,那么您一定不会错过Spring和JavaEE宣传人员之间热闹的“贱人之战”(请原谅我的法语)。

首先,于尔根·霍勒(JürgenHöller)的挑衅性文章:

“ Java EE 7,第二个生日快乐! 生产情况如何?”

然后, Reza Rahman的回应:

“ Java EE 7生产中的幽灵:过去,现在和未来”

在这之间,有数百条同样有趣的推文。

如果还没有,取出爆米花:)

巨魔营销

诺基亚3310

在Data Geekery ,我们当然不熟悉我们喜欢称之为“巨魔营销”的有趣和有效的技术,例如,当我们最近反对Java EE和Spring都(滥用)注释时 ,或者当我们将Hibernate与老式的诺基亚3310进行比较时 。

是孩子气,是的。 但这也是有效的。 这样做有效的唯一原因是,这样做会激起黄蜂的巢。 毕竟,您有一个要点,您就开始引发一个两极分化的讨论,没有正确/错误的答案,所有参与者都将无法接受并因此而战斗。 当他们在战斗时,您可以在每条消息中加入您的品牌。 答对了。

Spring人们做的事情完全一样。 如果您听过Pivotal的Josh Long的演讲,那么您肯定会注意到,很多演讲只是对Internet Explorer之类的抱怨 。 如果您不是那种个人,认真和/或字面意思地对待一切的人,那么这样的谈话可能会很有趣。

这里有趣的一点是,“标准”布道者对Spring的挑衅性文章React过度。 在Reza的文章的底部,有一个Bert Ertman的链接演示文稿,该演示文稿支持Java EE(并且说Reza认可了本次演讲的内容风格是没有错的):

JavaOne 2011:将Spring应用程序迁移到Java EE 6
伯特·埃特曼

我要在这里说明的重点不是两个相对的技术供应商试图建立自己的社区,以说服人们他们的技术更好(这是特斯拉与爱迪生之间早就进行的工程师工作)。

我要在此说明的重点是,其中一个供应商声称自己是“标准”,使自己(JCP = Oracle)在真实的标准委员会(例如ISO,DIN,w3c, IETF。

JavaEE是标准吗?

在某种程度上是这样。 就像Spring一样,这是事实上的标准。 这是一群非常松散的小型利益集团,主要由Oracle(和其他供应商)管理,他们试图通过替代性“专有”技术来促进和确立其利益和技术。

JavaEE是历史悠久的“标准”。 它一直是一个相当“弱”的标准,这就是为什么首先创建Spring的原因。 Oracle的Reza对Spring故意挑衅的React如此敏感的事实可以被解释为一个标志,表明“标准”仍然很弱,并且作为替代品受到Spring的威胁。

可以对Siebel与Salesforce进行有趣的比较。 Siebel是CRM行业中事实上的“标准”,但是Salesforce设法对Siebel造成了极大的骚扰,以至于Siebel甚至在就收入水平达成远程会面之前就不得不承认Salesforce是其业务的真正竞争对手。 这最终导致了Siebel的灭亡,并被Oracle托管,Oracle主持了许多JCP,这真是具有讽刺意味。

Java EE和Spring也发生了同样的事情。 现在,即使在完全(当然是专有)专有的条件下,Spring在市场上也是如此成功,以至于Java EE将不得不努力争取回到Spring之上。 比仅讲陈旧而la脚的“标准”论点要困难得多。 Java EE必须比Spring更好和更快,而不仅仅是“标准”。 尽管所有JCP政治都在进行,但我看不到这种情况。

那么,春天会赢吗?

我的预测是:不会。

这整个故事只向我们表明Java生态系统中的标准很弱。 市场上有大量玩家。 像Hibernate和jOOQ这样的利基产品可以撼动数据库访问市场的份额。 诸如GWT , Vaadin , ZK , Spring MVC , Play Framework等小众产品可以撼动HTML UI市场领域(JSF或JSR 371不能阻止该领域进一步的市场分化)。

哎呀,诸如Akka或Vert.X之类的与语言无关的技术表明,甚至Servlet API也不是真正可靠和安全的。 随着Oracle引入Nashorn,整个JavaScript生态系统也可能威胁Java EE。 我怀疑,接下来的5-10年里,唯一可以想到的是JVM和Java SE JDK及其库,包括JDBC。

目前我们的行业发展如此Swift,像JCP这样的高度分散的政治委员会似乎无法跟上步伐并提供我们在其他地方看到的质量和创新。

换句话说,Java EE“标准”仅是公认的成熟技术落后5-10年的时间。 前一段时间证明。 鉴于像Pivotal这样的单一玩家已经成功挑战了“标准”已有10多年了,我怀疑新玩家可能很快会用新的替代品进入市场。

谁将成为新玩家?

其中之一将是即将重命名的Typesafe 。 您为什么认为他们毕竟被重新命名了? 您认为他们想用Akka + Play + ConductR证明什么? 他们试图证明您可以在JVM之上完全不同地开发软件,这就是他们试图证明的。

此外,他们使用的是Pivotal / Spring成功的低内容,高情感的巨魔营销技术。 观察他们到处都使用邪恶的术语“ monolith”(= Java EE,还有什么):

整体式

其中另一个可能是……微软! 为什么不? 他们最近的开源采购举措可能最终将有助于在Linux之上建立.NET。 一旦您使用了Linux,您最好也可以使用JVM。 .NET生态系统比Java更紧密,这将对我们的生态系统施加很大的创新压力。

微软Linux

当JCP仍在从改变游戏规则的数据交换API JSR-353 , JSR-367和JSR-374背后的政治中恢复过来时,所有这一切都在发生

有趣的未来

以上预测可能会或可能不会成立。 但是我很确定一件事。 在不久的将来,我们将面临更大的竞争,因此我们的基础架构软件将有更多选择。 当前的事实上的标准将失去市场份额。 对他们来说是不幸的,对我们来说是更好的技术。

当福音派工作者在打架时,我期待着JVM上一个非常有趣的未来。

翻译自: https://www.javacodegeeks.com/2015/06/javaee-or-spring-neither-we-call-out-for-a-fresh-competitor.html

spring javaee

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言代码优化的方法

点击蓝字关注我们在本篇文章中,我(指原作者)收集了很多经验和方法。应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码。简介在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级JPEG库…

linux源码安装apache2,CentOS7编译安装Apache2

在LAMP环境下对于服务的安装是必不可少的,在linux环境下安装软件也有两种不同的方式,一种是yum安装当然了不同的linux发行版本使用略有不同,另一种是通过编译安装,编译安装要比yum安装要可控此,但是要比yum安装略微麻烦…

C/C++ 命中率比较高的面试知识点,你都答得上来吗

点击蓝字关注我们第一部分:计算机基础1. C/C内存有哪几种类型?C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量&…

svn: 没有演进历程信息_使用默认方法的接口演进–第二部分:接口

svn: 没有演进历程信息引入了默认方法以启用接口演进。 如果向后兼容性是不可替代的,则仅限于向接口添加新方法(这是它们在JDK中的唯一用法)。 但是,如果希望客户端更新其代码,则可以使用默认方法逐步演化接口而不会引…

蓝桥杯7届c语言 c组答案,第七届蓝桥杯C语言C组-(自己懂的题目)

第七届蓝桥杯C语言C组-(自己懂的题目)表示刚刚查了成绩,省赛一等奖,有资格去北京了,然后写一下总结,先来写一下我懂的题目,毕竟我也是菜鸟,听说国赛比预赛难几个等级。。。第一题报纸页数X星球日报和我们地…

关于多线程的几道面试题

点击蓝字关注我们第一题:线程的基本概念、线程的基本状态及状态之间的关系?线程,有时称为轻量级进程,是CPU使用的基本单元;它由线程ID、程序计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程共享其代码段、数…

大牛谈嵌入式C语言的高级用法

点击蓝字关注我们内存管理我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都会在编译时被转成内存地址。机器是不知道我们取的名字的,只知道地址。 内存的使用时程序设计中需要考虑的重要因素之一&…

博科光纤交换机java_带有光纤的可扩展,健壮和标准的Java Web服务

博科光纤交换机java这篇博客文章讨论了负载下的基准Web服务性能。 要了解有关Web服务性能理论的更多信息,请阅读利特尔定律,可伸缩性和容错 。 使用阻塞和异步IO对Web服务进行基准测试 Web应用程序(或Web服务)如何在负载下&#…

很棒的C语言入门笔记,推荐收藏!

点击蓝字关注我们c语言入门C语言一经出现就以其功能丰富、表达能力强、灵活方便、应用面广等特点迅速在全世界普及和推广。C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。C语言也是其它众多高级语言的鼻祖语言,所以说学习…

C语言的注释要注意几点

点击蓝字关注我们如果领导给你一个项目的源码让你阅读,并理解重构代码,但里面一句注释都没有,我想这肯定是之前同事“删库跑路”了。看一份源码什么很重要?除了各种代码规范之外,还有一个比较重要的就是注释。注释虽然…

java自动推断类型_推断:Facebook的新Java静态分析工具

java自动推断类型如何使用Facebook的Infer改善Java开发工作流程? 如果您与技术话题保持同步(如果您正在阅读此博客,我想您会这样做),那么您可能听说过Facebook 刚刚向公众发布的新工具:推断。 由于它来自F…

android官方架构组件,Android 架构组件官方文档01——LifeCycle

使用生命周期感知组件处理生命周期支持生命周期的组件执行操作以响应另一个组件(例如Activity和fragment)的生命周期状态更改。这些组件可帮助您生成组织性更好,并且通常更轻量的代码,这些代码更易于维护。常见的模式是在Activity和fragment的生命周期方…

C语言的核心和灵魂

点击蓝字关注我们提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了。今天我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。悬空指针C语言中的指针可以指向一块内…

javaone_JavaOne 2015 –提交技巧和建议

javaone大家都知道JavaOne 。 感觉就像一直存在。 而且,即使我们跌宕起伏,而地理位置也不是我们想要的那样,旧金山也很昂贵,而且和。 这是有关各种Java的顶级会议。 今年又再次成为程序委员会(“ Java,DevO…

C语言_结构体总结,附实例源码

点击蓝字关注我们当前文章介绍动态堆空间内存分配与释放,C语言结构体定义、初始化、赋值、结构体数组、结构体指针的相关知识点,最后通过一个学生管理系统综合练习结构体数组的使用。1. 动态内存管理C语言代码----->编译----->链接------>可执行…

四大C语言知识总结

点击蓝字关注我们1、#define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。因此在程序运行时,常量表中并…

jdbc select语句_SELECT语句使用JDBC和Hibernate批量获取

jdbc select语句介绍 现在,我已经介绍了Hibernate对INSERT , UPDATE和DELETE语句的批处理支持,是时候分析SELECT语句结果集的批量提取了。 JDBC ResultSet提供了一个客户端Proxy游标,用于获取当前语句的返回数据。 执行该语句后&…

看懂开源项目,你得熟悉这几个 C++11 新特性

点击蓝字关注我们C11 中增加了许多的新特性。在本文中,我们来聊一下 lambda 表达式,闭包,std::function以及std::bind。lambda 表达式C11 中新增了 lambda 表达式这一语言特性。lambda 表达式可以让我们快速和便捷的创建一个 “函数”。下面是…

5元素升级android6,【五元素ifive X.7】无障碍升级,ifveX详细升级固件教程,快为爱机升级吧。...

android系统的乐趣就是可以随意的刷机,所以拿到如此高配置的ifiveX也是想随时体验最新的android系统。而很多朋友可能只会用设备,刷机这种比较技术性的动作就不太会弄了。也就在这周,才帮同事刷RUU把已经无法启动的G12刷了回来。所以刷机还是…

昆仑通态复制的程序可以用吗_昆仑通态专题(七):MCGS组态软件的设备窗口...

点击上方蓝色字体,关注我们设备窗口是MCGS嵌入版组态软件系统的重要组成部分,在设备窗口中建立系统与外部硬件设备的连接关系,使系统能够从外部设备读取数据并控制外部设备的工作状态,实现对工业过程设备的实时监控与操作。01 设备…