JEE的社区

JEE从出生到现在,十多年了。在软件领域,好听的说法,基本上就是Legacy系统了,不好听,那就是恐龙。曾经疯魔万千开发者的Springframework, Jboss 社区, Apache 的JEE社区,全都跑去了Node.js, Scala,JQuery,Hadoop, Spark。

一个大家纷纷转向云平台和大规模数据处理的年代,更轻便更灵活的Web框架层出不穷的年代,JEE看起来老态龙钟,那些编程模型和容器,看起来已经是昨日黄花。再也没有人愿意只用别人制定的的模型,在这个git hub和 node.js 的时代。老式的编程模型代表着一种专制和居高临下的态度,只有遵守那些不容违反的规则,并在指定的活动范围之中,才能得到系统的承认。

Spring framework第一个挑战这个哲学,然后迎来了Spring社区的兴盛,没人再关心JEE系统,JEE模型从此变成了基础设施。不过在挑战这个哲学上面,赢得开发者的欢心之后,Spring却也没有走的更远,到最后其实也只是稍稍灵活一些的JEE而已。

真正的Internet时代

Node.js的出现具有非常重大的意义,可能很多人并没有意识到这一点。你可以在任意的抽象层面工作,你可以定义自己的抽象级别,任何层级都是开放的。我们可以看到很多类JEE的框架,但却没有任何编程模型的限制,开发人员可以在任何他愿意的层级上去工作。从前需要大公司指定标准和规范的年代已经一去不回了。

从Google的论文公开的那一天起,MapReduce就代表了这个时代处理数据的方向,各种类-MapReduce一直在涌现。从前的关系型数据库,也失去了光环。

这些技术,极大地压缩了JEE的生存空间。Web方面,JEE得以兴盛的原因,和今天流行的种种框架和技术相比,从前的亮点今天黯淡无光。唯一剩下的,只有分布式事务的处理器和可靠消息的传输机制,仍然有意义。Webservice上面,更不用说远远不如各种轻便的方案。

抽象

但JEE就是消失中的恐龙吗?难道它所代表的技术从此就毫无意义?只能说JEE在Oracle手中,已经丧失了自我更新的能力。

如果我们仅仅从计算上考虑,MapReduce代表的批处理,如果用JEE的模型来实现,远远比从头做起要轻松很多。每个MapReduce的计算,如果用JEE的模型看来,也不过是一堆相互进行分布式调用的对象,而JEE的远程部署,消息机制,难道就不能分发MapReduce Task吗?分布式的文件系统,那就更加简单了,多个分布式的对象的协作就能完成这件事。

需要做的,只不过是把那些繁杂的内容变成简单的接口而已。

而Web这一面,实在看不出从前的模式在今天还有多大的意义。除了能够为Java对象提供面向Http的包装之外,但这并不是不可或缺的。

其实,只要在更高的抽象层面去思考。我们就会发现,JEE不失为好的方案,虽然要扔掉很多东西,但终归他可以在一个更宽广的概念内重生。

【我是标题党,YEAH】【仅仅是个思路而已,如何做,做什么,这就不是一个“扯淡”所能包含的了】【有时间再想想】

老去的JEE,焕发生命的更多相关文章

  1. unity3d游戏开发猜想——当程序猿老去

    程序猿将代码注入生命去打造互联网的浪潮之巅.当有一天他们老了.会走向那里,会做些什么? 4.4.0" alt="" style="border:0px; ver ...

  2. 【老孟Flutter】Stateful 组件的生命周期​

    老孟导读:关于生命周期的文章共有2篇,第一篇是介绍 Flutter 中Stateful 组件的生命周期. 博客地址:http://laomengit.com/blog/20201227/Statefu ...

  3. 【老孟Flutter】Flutter 中与平台相关的生命周期

    老孟导读:关于生命周期的文章共有2篇,一篇(此篇)是介绍 Flutter 中Stateful 组件的生命周期. 第二篇是 Flutter 中与平台相关的生命周期, 博客地址:http://laomen ...

  4. web页面的生命周期

    1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请求 2.服务器软件(IIS)接收,它最终的目的就是为了向客户输出它请求的动态页面生成的html代码. 3.服务器不 ...

  5. Android开发艺术1之Activity的生命周期

    作为<Android开发艺术探索>这本书的第一篇博客,我就多说几句.本系列博客旨在对书中相关内容进行解读,简化,提供一个入门到提高的流程.不敢说书评,也不能说教程,只希望对有些人有帮助就好 ...

  6. java 多线程总结篇3之——生命周期和线程同步

    一.生命周期 线程的生命周期全在一张图中,理解此图是基本: 线程状态图 一.新建和就绪状态 当程序使用new关键字创建了一个线程之后,该线程就处于新建状态,此时它和其他的Java对象一样,仅仅由Jav ...

  7. Spring Bean生命周期,好像人的一生。。

    大家好,我是老三,上节我们手撸了一个简单的IOC容器五分钟,手撸一个Spring容器!,这节我们来看一看Spring中Bean的生命周期,我发现,和人的一生真的很像. 简单说说IoC和Bean IoC ...

  8. 实体生命周期【Entity Lifecycle】(EF基础系列10)

    Before we work on CRUD operation (Create, Read, Update, Delete), it's important to understand the en ...

  9. Activityn 生命周期

    前言 Activity 生命周期,虽然开发android 程序有几年了,但是很多基本东西还是经常遗忘模糊,在此笔记白纸黑字记录,下次记忆模糊的时候温故知新.网上一搜索一大把,但是多是一大堆各种日志搅来 ...

随机推荐

  1. mysql explain 命令简解

    参考官方文档地址: http://dev.mysql.com/doc/refman/5.7/en/explain.html 为什么用explain . 如果你的页面返回结果很慢,你就需要使用expla ...

  2. java+android学习路线图

    java.android学习路线图  看图之前先按住Ctrl键同时滑动鼠标滚轮

  3. AsyncTask详解

    http://blog.csdn.net/liuhe688/article/details/6532519 在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Hand ...

  4. 8 个优秀的 Linux 图形图像及色彩工具

    8 个优秀的 Linux 图形图像及色彩工具 1. 硬件色彩分析器LPROF LPROF 是一个用于创建设备兼容,如相机.扫描仪.显示器的ICC兼容型材的颜色分析器.这些配置提供跨设备的色彩一致性.他 ...

  5. iOS中如何呼出另一个应用

    我们经常会遇到在一个应用里面呼出另一个应用的需求,比如在文档里面点击地址,调用safari来打开网页:比如在文件浏览器里面点击某种文件,自动激活一个应用来打开文件. iOS里面对于这样的需求使用URL ...

  6. LOL是什么意思? - 已解决 - 搜狗问问

    LOL是什么意思? - 已解决 - 搜狗问问 N A T S U . |分类:QQ工具栏 2009-05-04 LOL是什么意思? 满意答案 Shim Nyong 19级 2009-05-04 LOL ...

  7. 【Spring MVC系列】--(4)返回JSON

    [Spring MVC系列]--(4)返回JSON 摘要:本文主要介绍如何在控制器中将数据生成JSON格式并返回 1.导入包 (1)spring mvc 3.0不需要任何其他配置,添加一个jackso ...

  8. iOS使用sqlite3原生语法进行增删改查以及FMDB的使用

    首先要导入libsqlite3.dylib并且加入头文件#import <sqlite3.h>,在进行增删改查之前还要先把数据库搞进去. 一种方法是从外面拷贝到程序里:http://www ...

  9. wx.BookCtrlBase

    wx.BookCtrlBase A book control is a convenient way of displaying multiple pages of information, disp ...

  10. php的引用

    <?php $var1 = 1; $var2 = 2; function foo(){ global $var1,$var2; $var2 = &$var1; } function te ...