技术开发 频道

Oracle的陷阱:Java平台的封闭

  【IT168 评论】作为Apache软件基金会的成员之一,我对开源软件的立场倾向于支持更加自由的许可协议,例如Apache许可证 (v2.0), BSD, 或 MIT许可协议。我坚信应该鼓励企业都能够采用开源软件,让他们能够使用开源软件做他们想做的任何事情,在当前法律框架下尽可能的放宽限制。 宽松自由的软件许可协议能够使软件开发社区做的更好。自由的开源软件开发能鼓励真正的、专心的、有实力的参与者的奉献活动,就像“公开核心” 运动那样,企业可以出售对软件的服务和“企业级软件功能”,而不要变成一个单一个体掌握了所有软件的重要权利。

  我必须坦诚——我对Java语言并不是很热心——我更愿意用Python,Javascript,C,C++,甚至是PHP写程序,可是我发现Java无所不在,我深陷其中。Java和JVM如今已经成为我的团队开发的Cloudkick里众多组件的核心部分,而且无可替换。

  如今IBM宣布了要转移他们的工作重心,转向基于OpenJDK上开发。这是Oracle控告Google的Android侵权之后的又一件大事。Oracle是一个擅长于玩弄大公司政治的公司,擅长于榨取价值——我确信他会从Sun的躯壳里榨取出最后一枚硬币为止。

  当Sun,现在是Oracle,把OpenJDK置于GPL许可协议之下时,TCK的许可协议的问题已经悬着5年多了。有些博客对这个问题有深入的介绍[1] [2] [3],我建议大家对TCK,Apache和Sun之间的故事都应该详细了解一下——但这不是我要在这里关注的。

  我认为自己是个开源软件的倡导者,尽管跟有些人,例如Richard Stallman——GNU的创始人,的做法不尽相同。Richard的观点跟我在很多问题上都不太一致,但有一点是一致的,Java世界里越来越乱的现象也开始使我对软件平台和许可协议的信仰有所改变。

  6年以前,Richard发表了“自由但带着枷锁 – Java陷阱”。当时我并不认同这种道德上的关于软件自由的论点,但现在我相信了,Java平台就是一个陷阱。

  Richard在他的文章里谈到了“免费软件世界”以及其它很多的GNU项目,其中一点我觉得十分的重要:如果你的程序依赖于一个平台,你就会受到这个平台的许可协议和发展进程的约束。

  任何软件,任何语言都会碰到这种问题。例如,如果一个免费的程序只能运行微软的Windows操作系统上,那对于免费世界 来说还是需要付费。但在GUN/Linux上运行的软件由于依赖于其它的非免费软件,那也同样毫无意义。在过去,Motif(在LessTif之前)和 Qt(在开发人员将其免费之前)主要的问题都是产生在这个方面。大多数3D显卡都依赖于非免费的驱动,同样也产生这样的问题。但如今,最大的问题却来自于 Java,因为开发免费软件的人都对Java很有感觉。对这种语言的吸引力蒙蔽了他们,他们忽略了独立性问题,掉入了Java的陷阱。

  如果你在Java和JVM上开发软件,你就被困在了由一个公司——Oracle控制的单一的一个平台上。 Oracle努力维持着对这个平台的控制权,拒绝删除在TCK里的使用条款,有效的阻止了Apache Harmony项目一直不能正式发布。对Google的诉讼证明了Oracle过度的痴迷于对这个平台的掌控。

  问题并非都是关于Oracle对他的代码的控制。就像我上面说的,我相信一个公司有权做他们想做的——可是同时,如果他们选择有害的管理方式,我将 不再去使用这个平台。在Java世界最严重的事情是,这种约束在Java的第三方实现中仍然存在。Oracle可以关闭OpenJDK源代码,这与我无 关,但让人恼火的是它打压Java的其它版本的实现。

0
相关文章