`

事关Java未来的三个核心问题

阅读更多
*Oracle公司期望达到IBM一样的高度和地位,他需要被人们认为他是一个大型供应商,具有提供应用、平台以及数据库等一整套服务的能力,也就是所谓的一站式服务。

*Oracle已经在应用和数据库市场发挥得淋漓尽致了。要想继续在这个领域做大做强,在硬件业务领域进行扩张是它的主要途径。

*此次收购也很可能是Oracle为了应对微软收购SAP公司这则传言所做出的长期性策略。

虽然收购的原因对很多人来说是很重要的信息,但是我最为关注的问题是Java技术将何去何从,要知道Sun花了15年精力来创建、培养和发展Java.我常常说Java就是COBOL, 因为现在几乎所有的业务应用里都能找到Java的痕迹。尽管在软件开发行业,关于Java的流言每每都甚嚣尘上,但结果往往大都不攻自破了。但是我们还是可以从历史经验里寻出一些脉络,分析一下Java的前途。

如果单纯从Java的角度来看Oracle的收购,最关键的三个问题就是:

1.Java标准制定组织(Java Community Process)是否还将继续存在?

2.Apache软件基金会(Apache Software Foundation)和Sun之间的纷争能否得到解决?

3.Oracle公司能否通过把持对JDK的TCK授权获得Java的知识产权(IP)?

以下为详述:

Java标准制定组织(Java Community Process)是否还将继续存在?

Oracle本来就是JCP的执行委员,他们已经提交了80多条 Java标准提案( Java Specifiation Request )。Oracle已经承诺长期参与JCP,它还向其它参与者表示,JCP需要变得更加开放、透明和供应商中立(vendor-neutral)。特别是在2007年12月12日,Oracle提出以下建议:

第1号决议 (Oracle提议,BEA公司附议)

执行委员会(Executive Committee )认为,JCP将努力成为一个开放的、独立的、供应商中立的标准制定组织(Standards Organization),所有成员参与公平竞争且必须满足以下几点要求:

*会员共同承担开发和管理费用;

*一个有规章制度的法律实体、管理机构、成员等;

*新的,简化的授权策略(IPR Policy)将允许尽可能多的实现;

*严格的兼容性要求;

*致力于促进Java编程模型。

另外,执行委员会将推出措施以期使这种转换越快越好,以尽量减小对Java社区的影响。

所以如果不出意外,Oracle还将继续支持JCP,只不过变成了一个完全不同的JCP.如果Oracle能成功地实施它所计划的改革,那结果将会非常有趣而且将产生广泛的影响。关于Oracle将如何实施这一计划,也是一个很有意思的事情,从中也将可以看出Oracle将如何处理Java .

Apache软件基金会(Apache Software Foundation)和Sun之间的纷争能否得到解决?

Apache和Sun之间的纠葛由来已久,双方积怨颇深。大概情况是这样的:

1. Apache Harmony Project想要创建一个基于Java SE 5.0的JDK,以及一个ASF授权的模块化虚拟机。

2.Sun公司通过OpenJDK项目把JDK开源化了。

3.如果要成为被认证的JDK ,Apache Harmony就必须通过Sun公司的技术兼容工具包( Technology Compatibility Kits)测试。

4.Sun公司指出Harmony是基于JDK 5.0 这个老版本开发的,而非最新的JDK(那个时候是6.0版),于是认证问题悬而未决,Harmony Projec也便被束之高阁了。

时至今日,OpenJDK监管会仍没有解决这些争端。Oracle如何处理这个问题是窥测它的Java策略的第二只晴雨表。

Oracle公司能否牢牢控制住Java的知识产权

与JDK认证相关的许多法律问题把Java问题搅得非常复杂。例如,除非你通过了为OpenJDK拟定的TCK认证,否则你就无法合法使用Java的知识产权。也就是说,在这种情况下,你的JDK实际是没有经过认证的。

因为我们没有Java SE 7的规范,Sun公司也没有打算推出,这就会导致我们没法使用官方的OpenJDK 7了。Oracle可以采取同样的做法不发布一个规范或者TCK,那样它仍能保护它的知识产权。

小结

你应该已经认识到,上面这三个问题其实是相互关联的,每个答案本身可能都有不同的水平和层次。例如:

*JCP应该会继续存在,但是在引领Java方向上它可能会扮演另外的角色。

*管理上的不同可能会使得在ASF问题重新简单化,从而一举解决那段纠纷。

*Oracle可能会推出一个新的JDK规范和TCK认证,兑现所作的开放 JDK的承诺。

这几个因素的走向将让Java开发者社区清楚地看到Oracle会如何运营Java.我们拭目以待吧。
分享到:
评论

相关推荐

    基于GUI的网络通信程序设计.docx

    实验二的目的是让学生掌握Java图形用户界面(GUI)的...通过这个实验,学生不仅能够深入理解Java GUI编程,还能掌握网络通信的基本流程,以及多线程在并发处理中的应用,这对于未来开发交互式网络应用程序至关重要。

    重构那点事情

    重构的核心理念是由马丁·福勒(Martin Fowler)提出并广为传播的。重构的基本原则包括: - **保持功能不变**:重构过程中不应改变原有功能。 - **分步进行**:重构应当按照小步骤逐步完成。 - **确保测试覆盖**:...

    程序员那点儿事儿

    成为一名出色的程序员并非易事,但通过不懈努力和持续学习,每个人都有机会实现这一目标。关键在于保持对技术的热情,勇于面对挑战,不断拓展自己的知识边界。记住,编程不仅是一项技术,更是一种艺术,享受其中的...

    labuladong的刷题三件套.zip

    总的来说,"labuladong的刷题三件套"是一个极好的学习资源,它涵盖了数据结构与算法的核心内容,可以帮助学习者巩固理论知识,提升编程技能,为未来的职业生涯打下坚实的基础。无论是准备面试,还是提升现有项目,这...

    编程的那些事儿.pdf

    根据提供的文件信息,我们可以从中提炼出以下几个重要的知识点: ### 一、编程的抽象思维 **摘要:** 在《编程的那些事儿》一书中,作者强调了“抽象眼光看编程”的重要性。这意味着程序员需要具备一定的抽象思维...

    Harvard cs153 compiler HW5

    设计一个编译器并非易事,需要考虑许多复杂的问题,如处理各种语言特性、错误检测和报告、以及在不同平台上的兼容性。在作业HW5中,学生可能需要实现特定的编译器模块,比如解析器、符号表管理或者特定的优化策略。 ...

    JSP开发技术原理与实践教程——代码.rar

    3. **JSP生命周期**:JSP有三个主要阶段:翻译、初始化和服务。翻译时,JSP被转换为Servlet源码;初始化阶段,Servlet加载并实例化;服务阶段,Servlet处理客户端请求。 4. **EL(Expression Language)和JSTL...

    C#微软培训资料

    第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第四章 数 据 类 型 .28 4.1 值 类 型...

    第四章电子商务系统开发知识

    1. 网站制作的核心是**好的概念设计**,即在技术力量的支持下,通过网页制作工作实现,同时考虑网站规模,但最重要的是有一个吸引人的概念。 2. 传统商务中的支付方式主要包括**银行转账和现金**,在电子商务中逐渐...

Global site tag (gtag.js) - Google Analytics