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安装略微麻烦…

finally块_如何从finally块访问方法的结果值

finally块尽管JVM是基于堆栈的计算机 ,但Java语言实际上并没有为您提供任何访问该堆栈的方法。 即使有时在极少数情况下,它也将非常有用。 一个例子 方法结果值放在堆栈中。 如果查看以下示例: public int method() {if (something)return …

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

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

linux 提示符 异常,linux终端提示符异常 bash-4.1$

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile: 每个用户都可使用该文件…

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

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

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

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

关于多线程的几道面试题

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

c语言 想输入非数字是报错误,C语言上机练习5C言上机练习5.doc

C语言上机练习5C言上机练习5C语言上机报告5 数组2上机内容找出下列程序中的错误并改正1) /*有一个34的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。*/#include "stdio.h"#define M 3//无分号#define N 4void main( ){ int max,i,j,r,c;int a[M][N]{{323…

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

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

java转换为c#_C#vs Java哪一个更快? 将25k C#转换为Java(2)

java转换为c#在上一篇文章中,我描述了如何将25k行C#转换为Java以及从该练习中学到的教训。 我收到以下问题: 顺便说一句很棒的文章。 移植代码后,性能与C#版本相比如何? 改写系统的动机之一是使系统运行更…

基于人工神经网络的识别C语言,实验一基于人工神经网络的数码识别.doc

实验一基于人工神经网络的数码识别《人工智能导论》课程基于人工神经网络的数码识别班级:计1103学号:201107010330姓名:贾梦洁成绩评定:评阅老师:日 期:实验报告正文一、实验目的?????基于神经网络的数…

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

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

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

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

自定义日历控android,Android自定义日历Calender代码实现

产品要做签到功能,签到功能要基于一个日历来进行,所以就根据 要求自定义了一个日历自定义控件相信做android都知道:(1)首先创建一个类,继承一个容器类或者是一个控件(2)然后就是你需要设置的属性等的,在attrs文件夹中(…

java jsf_将Java 8日期时间API与JSF和Java EE 7结合使用

java jsf如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖。 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多Java EE 7 API,因为它们是为与java.util.Date和/或更旧的Date API一…

C语言的注释要注意几点

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

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

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

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

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

C语言的核心和灵魂

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