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

如果您一直在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的挑衅性文章反应过度。 在Reza的文章的底部,有一个Bert Ertman的链接演示文稿,该演示文稿支持Java EE(并且说Reza认可了本次演讲的内容风格是没有错的):

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

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

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

JavaEE是标准吗?

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

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

可以对Siebel与Salesforce进行有趣的比较。 Siebel是CRM行业中事实上的“标准”,但是Salesforce如此严重地骚扰了Siebel,以至于Siebel甚至在就收入水平达成远程会议之前就已经承认Salesforce是其业务的真正竞争对手。 这最终导致了Siebel的灭亡,并被Oracle托管,甲骨文托管了许多JCP,这真是具有讽刺意味。

Java EE和Spring也发生了同样的事情。 现在,即使在完全(当然)专有的情况下,Spring在市场上也是如此成功,以至于Java EE将不得不努力争取回到Spring之上。 比仅仅说出陈旧而me脚的“标准”论点要困难得多。 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

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

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

相关文章

编程技术交流

需要技术交流包含java:HTML, MySQL, Redis, Linux ,Nginx ,Tomcat , IntelliJ IDEA ,SVN , Eclipse ,Maven , RationalRose, Java SE,…

Convert Sorted Array to Binary Search Tree

https://oj.leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 解题思路: 回忆一下BST二叉搜索树的定义,他是这样一个二叉树&am…

visa linux 串口 通信,使用visa进行串口通信

最近因为项目的原因,都在研究上位机通信问题。这两个星期研究还是蛮多心得,下面就写写关于使用visa进行串口通信的内容LABVIEW软件LabVIEW 在仪器控制方面,还是很有优势的,把你仪器给你,读懂指令,然后估计半…

使用Sublime text总是弹出Unable to save...

用户设置添加: "atomic_save": false

POJ 2398 Toy Storage

这道题和POJ 2318几乎是一样的。 区别就是输入中坐标不给排序了&#xff0c;_|| 输出变成了&#xff0c;有多少个区域中有t个点。 1 #include <cstdio>2 #include <cmath>3 #include <cstring>4 #include <algorithm>5 using namespace std;6 7 struct…

linux ip forward不起作用,linux-ipforward实现

对于linux的数据包流向&#xff0c;大家应该是比较了解&#xff0c;如果还不是很了解&#xff0c;可以参考《OReilly.Understanding.Linux.Network.Internals.Dec.2005》&#xff0c;其中有一个图非常清楚的描述了数据包的流向。ip的数据包接收函数是ip_rcv()>ip_rcv_finish…

java常见的面试题

1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序C/S(Client/Server),客户端/服务端,桌面应用程序2.你所知道网络协议有那些? HTTP:超文本传输协议 FTP:文件传输协议 SMPT:简单邮件协议 TELNET:远程终端协议 POP3:邮件读取协议 3.Java都有…

java实现原数组根据下标分隔成两个子数组并且在原数组中交换两个子数组的位置...

此类实现:输出一行数组数据&#xff0c;根据输入的下标&#xff0c;以下标位置为结束&#xff0c;将原数组分割成两组子数组。并交换两个子数组的位置&#xff0c;保持子数组中的元素序号不变.如:原数组为7,9,8,5,3,2 以下标3为分割点&#xff0c;分割为子数组一&#xff1a;7,…

linux共享磁盘给指定ip,linux想挂载通过ipsan协议推送上来的磁盘,两个ip共分配了21个未分区的盘,...

先安装iSCSI initiator以及iscsiadmiscsiadm是基于命令行的iscsi管理工具&#xff0c;提供了对iscsi节点、会话、连接以及发现记录的操作。iscsiadm的使用说明可以查看/usr/share/doc/iscsi-initiator-utils-6.2.0.742/README&#xff0c;也可以运行man iscsiadm或iscsiadm --h…

dto与dto相互转换_在DTO上

dto与dto相互转换通常使用DTO或数据传输对象 。 什么不是s&#xff1f; 众所周知&#xff0c;它们源自DDD&#xff08;域驱动设计&#xff09;。 在那里很有意义–域对象具有状态&#xff0c;身份和业务逻辑&#xff0c;而DTO仅具有状态。 但是&#xff0c;当今许多项目正在使用…

动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据...

动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据&#xff1a;由存储过程决定&#xff0c;如果编写的存储过程可以生成需要呈现的表格则直接绑定&#xff0c;否则要动态生成表格转载于:https://www.cnblogs.com/yzl495/p/4269571.html

【APICloud系列|1】华为应用市场 应用版权证书或代理证书怎么填

将apk上传到华为应用市场 首页提交的时候是没有问题的&#xff0c;但是第二次需要更新的时候发现多了一个必填的选项 我的应用被打回来啦&#xff0c;说明这个免责函需要要填写。今天公章还不在公司&#xff0c;还着急上线&#xff0c;不能准时上线就扣20%的工资。

Lambdas中的例外:有点混乱的优雅解决方案

考虑以下用于写入文件的功能&#xff1a; 该方法背后的想法是&#xff0c;以允许用户在不同的实施方式中通过InputStream的方法&#xff0c;以便writeToFile可以被称为例如用GZIPOuputStream &#xff0c; SnappyOuputStream &#xff08;快速压缩&#xff09;或简单的FileIn…

linux ub查看ftp安装,Linux Ubuntu 18.04 安装 FTP服务

安装更新数据源 : apt-get update安装FTP: sudo apt-get install vsftpd服务启动FTP服务: sudo service vsftpd startTip可以使用screen后台运行服务停止FTP服务: sudo service vsftpd stop查看FTP服务状态: sudo service vsftpd status配置新建用户新建/home/uftp目录作为用户…

图片上的文字怎么转换为word

图片上的文字怎么转换为word 很多软件因为自身技术不成熟所有对使用环境操作步骤等有诸多的要求&#xff0c;使得用户使用的时候很不方便。一般的ocr文字识别软件不能在win7系统中使用&#xff0c;有的时候要使用这个软件还要重装系统或是找一台xp系统的电脑&#xff0c;使用受…

【APICloud系列|2】上架安卓应用商店全套流程(小米应用商店、华为应用市场、阿里应用商店、百度手机助手、腾讯应用宝)

​​本次主要讲解前5个平台上架流程及注意事项(注册登录信息自行准备) 1. 腾讯应用宝:http://open.qq.com/ 2. 阿里应用商店(淘宝手机助手,UC应用商店,豌豆荚):http://open.uc.cn/ 3. 百度手机助手:http://app.baidu.com/ 4. 华为应用市场:http://developer.huaw…

socket阻塞与非阻塞,同步与异步、I/O模型

socket阻塞与非阻塞&#xff0c;同步与异步 1. 概念理解 在进行网络编程时&#xff0c;我们常常见到同步(Sync)/异步(Async)&#xff0c;阻塞(Block)/非阻塞(Unblock)四种调用方式&#xff1a;同步&#xff1a; 所谓同步&#xff0c;就是在发出一个功能调用时&#xff0c;…

linux基于域名的虚拟主机,Nginx虚拟主机应用——基于域名、IP、端口的虚拟主机...

Nginx支持的虚拟主机有三种●基于域名的虚拟主机●基于IP的虚拟主机●基于端口的虚拟主机每一种虚拟主机均可通过“server{}" 配置段实现各自的功能基于域名的虚拟主机实验环境1.基础源码包(无密码):https://pan.baidu.com/s/14WvcmNMC6CFX1SnjHxE7JQ2.CentOS 7版本Linux虚…

解决Chrome谷歌浏览器″Adobe Flash Player 插件已被屏蔽″的问题

​​解决Chrome谷歌浏览器"Adobe Flash Player 插件已被屏蔽"的问题如果你确定在电脑上确实已经安装了 Adobe Flash Player 插件&#xff0c;但是打开网页时仍然提示"已屏蔽 Adobe Flash Player 插件" &#xff0c;你可以试试修改下面这两个选项&#xff0…

powermock模拟对象_使用PowerMock测试对象的内部状态

powermock模拟对象大多数单元测试都集中于测试对象的行为以证明其有效。 这可以通过编写一个JUnit测试来实现&#xff0c;该测试调用对象的公共方法&#xff0c;然后测试这些调用的返回值是否与先前定义的一组期望值匹配。 这是一种非常常见且成功的技术。 但是&#xff0c;不应…