架构之书:出路与《Expert One-on-One J2EE Development without EJB》
当 Java 最早出现时,目标是通过 Java Applet 等技术占领所有的终端,比如电视机等。20 年过去了,这个目标差不多实现了,不过是通过 Android,而不是 Java Applet, Java 本身的优势领域则变成了企业应用开发。
从大概 Java 1.4 开始,Java 的主要方向就变成了企业应用,也出现了 J2EE 项目,跟前文提到的 C++一样,J2EE 也希望能解决企业应用的所有问题。它通过 JCP 组织,通过一个个的 JSR,由于 JCP 本身的覆盖度,所以这些 JSR 出现后就基本成为了业界标准,而这里边野心最大的当属 EJB。
在 EJB 的思路里边,程序员只需关注业务逻辑,所有的底层都被良好地封装起来。包括分布式、持久化、等等,这些特性都由底层的 Application Server 来提供。这些特性中,最恐怖的就是 Stateful Session Bean。它给 EJB 带来了很大的复杂度,也间接导致了这本书,以及之后 Spring 框架的诞生。
EJB 的失败,究竟是技术不成熟的失败,还是整体思路的错误,现在还没法断言。毕竟随着 k8s 等项目的推进,我们又在重新把 EJB 当年的很多概念捡回来,唯一不同的是,我们现在拥有了 SOA,微服务等理念,同时硬件的进步又大幅度降低了跨进程、跨节点的通信成本。微服务、k8s,究竟是未来,还是历史上的一段弯路,还有待验证。
反过来讲,Spring 拯救了 Java 和 J2EE,如果继续在 EJB 的老路上走,Java 会逐步被企业应用抛弃,而 C#等语言则会接过这个重担。
题图:摩西开红海
版权声明: 本文为 InfoQ 作者【lidaobing】的原创文章。
原文链接:【http://xie.infoq.cn/article/4a8af8a3255618736c9b3fa76】。文章转载请联系作者。
评论