`

疯狂软件对Oracle放弃Java EE的看法

 
阅读更多

 

来源:http://javaligang.blog.51cto.com/5026500/1825681

---------------------

 

近日网络上出现了一些关于Oracle将要放弃Java EE的说法,在Java行业引起不小的关注,甚至有些人开始担心Java会不会就此消亡,但事实上这不过是杞人忧天,《疯狂Java讲义》图书李刚根据多年来Java行业的从业经验,对此提出以下几点分析抛砖引玉,供广大Java从业者参考。

 

第一点:Oracle根本没有力量左右Java发展

 

自从Java发展壮大以来,无论是以前的Sun公司,还是后来Oracle公司,一直都无力左右Java的发展:实际上Java的规范制定,都需要通过JCP审核,一些新机制、新功能往往并不是Oracle想加就加的,Java是一个庞大的生态圈,由庞大的社区力量在推动Java的发展。

 

Java本身有太多的规范都是来自社区的。世界上大量开源组织和公司,为Java贡献了非常多的专利和代码,每次JavaOne大会都是全世界Java界的圣会,汇聚一堂讨论、决定Java的走向和发展。

 

Java世界,可以说正左右着全球的发展,全球所有顶级的、核心的项目,绝大部分都是基于Java做的,即使不是完全基于Java,也和Java有千丝万缕的关系。深入最深的是美国。美国军方绝大部分的控制系统、甚至航天控制系统,都是基于Java或者和Java相关的。

 

除此之外,包括世界上所有的银行、通讯、航空、电力、交通、公共安全等领域的核心系统,也都是基于Java的,如果完全放弃Java,等同于把世界上所有的这些应用系统全部要替换掉,哪个公司、哪个团体有这个能力?如果这些系统全部不能运行,人类社会等同于重回到传统时代!

 

如果放弃Java,你不能从银行取钱、不能在线买飞机票、火车票、不能在线购买商品、不能刷公交卡、不能打电话……甚至连你的身份证信息都不复存在!

 

有人说:Java不赚钱,因为Java规范是开放的,所以Oracle才想要放弃。但如果真的不赚钱,那么Oracle为何要和谷歌因为Java的专利而打官司呢?

 

第二点:即使Oracle放弃Java,其他的公司会乐意继续扛起Java的大旗

 

先说现在正在和Oracle打官司的谷歌,正是因为Java的各种专利纠纷,如果Oracle真的愿意放弃Java,那么谷歌将首先表示欢迎、并非常乐意继续领导Java的发展。

 

即使谷歌不想要Java,光是国内的那些巨头,个个都想要Java,以便对自己的产品进行更深度的定制,现在因为要定制自己的产品。此外,能肩负扛起Java大旗的风光,国内软件巨头都不差钱,他们绝对非常乐意去做这件事情。不过话说回来,美国政府应该不会允许Java主导权落入中国,所以这一点我们只能是空想。

 

第三点:Oracle可能放弃Java EE,但不会放弃Java

 

Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。

 

但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接用Hibernate、MyBatis。

 

现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。

 

现在企业里面,真正常用的Java EE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。

 

Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。

 

但Java不同,2016年6月,Java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。

 

第四点:从C的历史来看Java,Java绝不会过时

 

C语言是一个诞生于上个世纪70年代的编程语言,在AT&T的贝尔实验室里面,由一个想玩游戏的老伙伴整出来的。

 

后来随着社区力量的介入,C形成了国际标准,参与其中的厂商、开发者不计其数。贝尔实验室早已不复存在,连AT&T也早已解体,但C语言依然坚挺,偶尔还跑到Java的前面,排名第一!

 

C发展到现在,已经形成了整个软件、硬件产业上下级纽带,绝大部分硬件设备的固件、驱动程序都是C语言写的。我所知道的操作系统的内核,也都是基于C语言。如果换掉C语言,现在电脑会变成裸机,可能还不如一堆废铁。

 

Java现在的情形,和C非常相似:Java已经深入到世界的骨髓。正如前文指出的:从美国的航空航天、军方控制系统,到日常生活的银行、通讯、电力、交通、公共安全等领域的核心系统,绝大部分都是基于Java开发。正如世界无法淘汰C一样,世界也无法淘汰Java。

 

第五点:Java可能不是最好的语言,但Java是最成熟的整体解决方案

 

经常有人会问我,Java是最好的编程语言吗?我会告诉他:应该不是。我知道的很多语言,如果仅就语言功能来说确实优于Java,就比如日趋没落的C#,由于很多特性都模仿了Java,有在某些方面做出了改进,因此语言特性要优于Java;再比如Apple新推出的Swift,编写起来简洁、优雅……然而并没有什么用,它们都无力、也不可能取代Java。就像世界上比C优秀的语言多如牛毛,但C依然、也将一直坚挺。

 

Java可能不是最好的语言,但Java一定是最成熟的整体解决方案。举几个业内公开事实:taobao最初使用了PHP,发展、壮大起来不得不全部换成Java实现;京东最初使用了dot Net实现,发展起来之后整个后台不得不换成Java实现;小米服务端的消息系统最初使用Erlang开发,当时消息推送系统的第一版是基于Erlang的,随着小米用户数量的增长,后来开发团队不得不选择使用Java重新开发……还有无数中小型的企业“迷途知返”的案例,我就不想一一列举了。从这些事实可以发现,对于一个并发量小、稳定性要求不高的系统来说,可供选择的方案看似很多:PHP、dot Net、Erlang……,但公司发展壮大之后,最成熟的解决方案却只能是Java。

 

Java的成熟并非体现在Java语言特性多么简介、优雅,而是来自它庞大的社区和开发者,以及各种各样框架、类库和工具。软件行业的各种新理论,新方法,几乎最先都是用Java实现的。选择Java作为企业级应用的解决方案,可以避免地“重复造轮子”,很多开发中面临的棘手难题,往往都有开源的解决方案;几乎所有行业,都有非常成熟的Java应用案例,可供后来的开发者作为参考。选择Java,并不是简单地选择了一门语言,而是选择了一个成熟、稳定的解决方案。

 

Java的成熟更体现在包容气度上,有人说Java语法臃肿、更喜欢Ruby,OK,那就JRuby吧;有人说我喜欢Python,OK,那就Groovy、Jython吧;有人说我喜欢Lisp,OK,那就Clojure吧……各种语言的开发者都可在JVM上大展拳脚,Java以海纳百川的方式包容、融汇着各种语言的特性,最终成就了Java的“夫唯不争,故天下莫能与之争”。

分享到:
评论

相关推荐

    Oracle Java EE 实训教材系列.pdf

    ### Oracle Java EE 实训教材系列知识点详述 #### 标题和描述中的知识点解析 **标题:“Oracle Java EE 实训教材系列.pdf”** 这个标题直接指出了文档的主题——Oracle Java EE 的实训教材系列。Java EE(Java ...

    疯狂Java_疯狂软件_Oracle_数据字典和创建表空间

    Oracle数据库是世界上最流行的关系型数据库管理系统之一,以其强大的功能和高度的可扩展性著称。在Oracle中,数据字典是系统维护的核心部分,它存储了关于数据库对象、权限、性能信息等一系列元数据。理解并熟练掌握...

    Java EE 7 Developer Handbook.pdf

    Pilgrim,他是第91位Oracle Java Champion,一位独立的合同工,同时也是一位专业的软件开发和设计师。Peter A. Pilgrim毕业于伦敦南岸大学,并获得了荣誉学位。 为了确保书籍内容的准确性,作者和出版方都做出了...

    Java EE 7权威指南卷1_1

    这本书由Oracle的Java EE文档小组成员倾力编写,会让初学者和中缎Java程序员深入了解这个平台。 这个指南包括平台特性的全面描述,并提供使用最新版本NetBeans IDE和GIassFish服务器开源版的有关说明书中不仅介绍了...

    windwos_x64_oracle_java1.9.rar

    本压缩包"windwos_x64_oracle_java1.9.rar"提供了适用于Windows 64位系统的Oracle Java 1.9(也称为Java SE 9)的安装程序。 首先,Java 9的重大改变之一是模块化系统(Project Jigsaw)。这个特性将Java平台分解...

    【英文】Java EE开发指南

    以上知识点详细介绍了Java EE开发指南文档的核心内容,包括Oracle ADF框架的应用、Java EE标准组件的使用、开发工具的功能以及软件的版权与使用限制等方面的信息。这些知识点对于进行Java EE企业级应用开发的开发...

    JAVA EE中文文档

    JAVA EE,全称为Java Platform, Enterprise Edition,是Java平台企业版的简称,是Oracle公司推出的一种用于构建企业级分布式应用程序的框架。它为开发者提供了在服务器端开发应用程序的一系列标准和API,包括Web组件...

    java ee连接Oracle数据库的各种方法.doc

    Java EE 连接 Oracle 数据库的各种方法 Java EE 连接 Oracle 数据库有多种方法,其中包括 JDBC 和 SQLJ 两种方式。JDBC 提供了一个驱动接口,使得 Java 程序可以访问数据库,而 SQLJ 是一个 Java 预编译器,可以将...

    Java SE - Downloads | Oracle Technology Network | Oracle 中国.pdf

    2. 文件中提到了Java SE的最新版本是Java SE 16.0.2,这表明了Java SE版本的更新情况以及Oracle作为Java技术所有者对平台的持续发展和维护。 3. Oracle License、Binary License、Documentation License等术语指的...

    Oracle和Java开发书籍

    《Oracle和Java开发书籍》是一本综合性的技术指南,涵盖了Oracle数据库系统以及Java开发的核心概念和技术。这本书旨在帮助读者理解如何将这两者有效地结合起来,以实现高质量的软件开发项目。 Oracle数据库是全球...

    java_ee_sdk-8u1.zip

    Java EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个企业级应用开发平台,它扩展了Java SE(标准版)的功能,专为构建分布式、多层的企业级应用程序而设计。Java EE SDK包含了运行和开发Java EE...

    Java连接Oracle数据库的各种方法

    Java连接Oracle数据库主要依赖于两种方法:JDBC和SQLJ。这两种方法都是Oracle8i及其后续版本中为Java开发者提供的数据库交互方式。 JDBC(Java Database Connectivity)是一种标准的Java API,它允许Java应用程序...

    用java编程将txt文件数据导入oracle

    "Java编程将TXT文件数据导入Oracle数据库" Java 编程将 TXT 文件数据导入 Oracle 数据库是指使用 Java 语言编写程序将 TXT 文件中的数据导入 Oracle 数据库中,以方便进行计算、统计等操作。下面将详细介绍该知识...

    The Java EE 6 Tutorial

    《Java EE 6 教程》是Oracle公司于2010年发布的一部详尽指导书籍,旨在帮助开发者深入理解和掌握Java Platform, Enterprise Edition(Java EE)平台的应用开发技术。Java EE 6作为企业级应用开发的标准框架,提供了...

    Oracle和JAVA环境配置

    Oracle 和 JAVA 环境配置 Oracle 环境配置是一个复杂的过程,涉及到多个组件的安装和配置。下面将详细介绍 Oracle 环境配置的步骤。 第一步:下载 Oracle Database Instant Client Oracle Database Instant ...

    面向软件工程师岗位的Java EE课程建设.pdf

    面向软件工程师岗位的Java EE课程建设.pdf ...因此,我们需要积极探索Java EE课程教学的新模式、新方法和新技术,以满足企业对人才的需求,提高学生的就业竞争力,实现学校到软件企业Java开发岗位的零距离对接。

    Oracle 9i Java程序设计——使用PL/SQL和Java的解决方案

    原书名:Oracle 9i Java Programming <br>Oracle 9i Java程序设计——使用PL/SQL和Java的解决方案 <br>【原出版社】 Wrox Press 【作 者】Bjarki Holm,John Carnell等 【译 者】 康博 【丛 ...

    java oracle 的jar包

    Java Oracle的JAR包是Java应用程序与Oracle数据库交互的关键组件,它们提供了Java Database Connectivity (JDBC)驱动程序,使得开发者可以使用Java语言编写程序来访问和操作Oracle数据库。Oracle JDBC驱动程序主要有...

Global site tag (gtag.js) - Google Analytics