分裂与妥协 IBM的Java平台策略简析

开发 后端
Java最近的纷争都围绕着Java的版本更新、知识产权和平台分支;这也是一直困扰Java社区的烦恼,无论是Sun时代还是Oracle时代。在这些纷乱的背后,另一个依托于巨人IBM 的做法值得玩味。

Java最近风波不断,Horowitz的博客《Java:不用就卸载吧!》劝诫用户***卸载Java来保证计算机的安全;接着,苹果在“Back to Mac”发布会上称可能放弃Java;Java之父Gosling昨天也在博客上对以上事件作出了自己的回应

事实是,以上所提到的一切都围绕着Java的更新、知识产权和版本分支;这也是一直困扰Java社区的烦恼,无论是Sun时代还是Oracle时代。在这些纷乱的背后,另一个依托于巨人IBM 的做法值得玩味,以下是来自《中国计算机报》一篇报道。

Java前途未卜的状况似乎正在因IBM发布的一则消息发生改观。据国外媒体10月12日报道,IBM将把与Java开发有关的工作从Apache Harmony项目转向OpenJDK,详细请参考51CTO的报道《IBM加入OpenJDK 将联手Oracle发展Java技术》。按照IBM的官方说法,这一举措“消除了Java未来发展的一些不确定性”。然而,这样留有余地的说法依然不能让开发者完全消除疑虑。

要说清楚疑虑何在,不妨从一些分裂Java的江湖事件说起。开发人员常用的JDK(Java开发套件)是Java的核心所在,但并不意味着只有Sun(现并入Oracle)开发的JDK才是唯一的正宗,比如早期Oracle、IBM以及基于GNU开源的Kaffe、OpenJDK都获得了授权,因此它们也被称为JDK,在性能上还互补。

但还有一个名气很大的另类,那就是基于Apache协议的Harmony,它非但没有获得早期Sun的认可,还一度与Sun翻了脸。Apache 软件基金会执行官2007年在其官方网站上发表一封公开信,拒绝接受Sun提供的关于JCP的许可证条款。遗憾的是,直到被收购,Sun也没有做出官方回应,不知是它不屑于这样做,还是早已焦头烂额,暂且容忍了这个不服管理的“愣头小子”。有意思的是,这封信中提到,该项目最初是由IBM捐献出来的,显然,潜台词是“不要跟IBM过不去”。

在支持Java方面,IBM一直坚定地与Sun站在一起,并从中受益。而现在情况发生了微妙变化,Sun的东家换成了Oracle,这个试图全面掌控Java并让它孵出金蛋的东家充当起发难者的角色。

比较来看,Sun是硬件思维,开源Java是在开源Solaris之后做出的决策,其本意在于迅速扩大Java的应用领域,进而产生连带效应,因为深度优化的***匹配可吸引客户选择其SPARC服务器。从这个意义上讲,IBM是Sun的同盟军。而现在,Oracle是软件思维,它非常看重当年没有被Sun找到合理商业模式的Java。IBM此时是与Oracle全面竞争的对手,大量应用Java成了IBM的软肋,Oracle当然会费尽心思,利用保留下的Java控制权来遏制IBM的业务发展。

那Oracle又为何先从对付Google入手呢(Oracle在今年8月控告Google侵犯Java产权)?这其实是项庄舞剑,意在沛公。谷歌的Android系统使用的是Java语法+Java核心类库+Android类库+Android虚拟机,正是借助Harmony,Google才有可能那么快发布Android。只不过,Google打了擦边球,让Sun吃了哑巴亏。可这一Java阵营中最彻底的分裂举动是Java江湖走向多极化的先兆,如果放任不管,很难说苹果这样的厂商不会走上类似道路。Oracle可不容别人挑战自己的地位,并且捧着自己的饭碗赚钱。更重要的是,敲打Google连带着警告Harmony和背后的IBM,还免去了直接与IBM交手,这比撕破脸皮的代价小多了。

从IBM宣布的Java项目迁移的消息来看,Oracle的招数奏效了,IBM这次妥协了。然而,这种妥协没有办法换来***的和平, Java未来还将面临太多变数。

关于Apache Harmony

Apache Harmony在2005年5月提案并被Apache软件基金会(ASF)接受,并且按照ASF惯例成为一个孵化器(incubator)项目。

Harmony为自己定了两个目标,首先是开发出一个独立并且与现有JDK兼容的Java SE 5实现,并且以Apache软件许可证2.0版发行;其次是建立一个开放的模块化运行时架构,包括虚拟机和类库之间及其内部的模块化,并通过这个平台,允许社区在此基础上自由定制自己的Java实现,或者对某个模块单独进行创新。

Apache Harmony 项目的成立以及它的这两个目标具有很大的现实意义。首先,由于商业 JDK 的流行性,它们几乎成为事实上的标准,所以Harmony必须与它们保持高度的兼容,才能够使应用程序的迁移成本***,也就相对容易被用户所接受;其次,Harmony存在的重要意义之一就在于这是一个属于开源社区的 Java 平台,在这个平台上,社区可以自由的移植和创新,而一个开放的模块化的架构,将为移植和创新带来***的便利性;***,Apache软件许可证是一个对商业公司和开源社区都比较友好的开源许可证,因此Harmony可以给***范围的开发人员和用户带来便利。本文和本系列后续文章将详细介绍Harmony在兼容性和模块化方面的努力,以及这些目标带来的价值。

在技术方面,Apache Harmony非常注重模块化,与所有其他 Java SE 实现类似的是,Harmony从大体上可以分为三个层次,最下层是操作系统,中间是Java虚拟机,最上层是Java类库。

【编辑推荐】

  1. 对于Java,Oracle的下一步打算是什么?
  2. Java之父:苹果放弃Java是因为成本昂贵
  3. Java创始人:Oracle起诉Google与版权无关
  4. 2010年10月编程语言排行榜:Java的混乱之治
责任编辑:佚名 来源: 51CTO综合报道
相关推荐

2012-11-21 20:58:07

一体机专家集成系统PureSystems

2011-07-27 18:01:09

组策略

2010-03-15 17:27:38

无线LAN故障修复

2010-04-20 20:46:01

负载均衡

2011-10-28 11:22:06

Android 4.0

2009-06-08 21:25:29

Java声音技术

2010-09-27 17:02:00

2023-03-10 12:28:16

2013-01-15 09:14:20

2017-02-21 16:40:16

Android垃圾回收内存泄露

2011-07-12 14:04:58

2024-05-20 13:07:43

2022-06-27 13:28:33

安全风险风险评估方法

2012-10-31 10:25:52

排序

2022-09-13 11:37:30

防御技术欺骗

2010-09-09 11:25:09

2023-06-25 12:17:44

2010-09-08 16:25:39

SIP协议栈

2010-09-10 09:52:44

开源协议栈

2024-04-02 13:22:51

点赞
收藏

51CTO技术栈公众号