Java前途未卜的状况似乎正在因IBM发布的一则消息发生改观。据国外媒体10月12日报道,IBM将把与Java开发有关的工作从Apache Harmony项目转向OpenJDK。按照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入手呢?这其实是项庄舞剑,意在沛公。谷歌的Android系统使用的是Java语法+Java核心类库+Android类库+Android虚拟机,正是借助Harmony,Google才有可能那么快发布Android。只不过,Google打了擦边球,让Sun吃了哑巴亏。可这一Java阵营中最彻底的分裂举动是Java江湖走向多极化的先兆,如果放任不管,很难说苹果这样的厂商不会走上类似道路。Oracle可不容别人挑战自己的地位,并且捧着自己的饭碗赚钱。更重要的是,敲打Google连带着警告Harmony和背后的IBM,还免去了直接与IBM交手,这比撕破脸皮的代价小多了。 从IBM宣布的Java项目迁移的消息来看,Oracle的招数奏效了,IBM这次妥协了。然而,这种妥协没有办法换来永久的和平, Java未来还将面临太多变数。 |