Oracle 修复了 Eclipse 的 Java 问题

  • Alex Blewitt
  • 张龙

2010 年 8 月 3 日

话题:JavaOracle语言 & 开发

InfoQ 上周曾报道过,Oracle 对因商标更换所导致的 Java 6u21 更新问题反应迅速。从那时起,Oracle 就开始重新构建 Java 安装,对于 Windows 机器来说,现在的发布构建名变成了 1.6.0_21-b07;因为该问题只影响到了 Windows,因此 Solaris 与 Linux 的版本号依旧为 1.6.0_21-b06。

Oracle 因快速的问题响应与解决能力而备受称赞。Eclipse 加载器使用了官方不支持的 API 检测厂商,因此 Oracle 根本没必要解决这个问题;然而幸运的是,Oracle 赶在 Eclipse 发布新的 Eclipse 构建版之前解决了这个问题。Eclipse 基金会的市场总监 Ian Skerrett 在一篇名为“Oracle 证明了自己对社区的巨大支持并修复了 Eclipse”的文章中表达了对 Oracle 的感激之情。

但遗憾的是,Ed Burnette 在 ZDNet 博客上使用了颇具挑战意味的标题“Oracle 更换了 Java 商标,导致 Eclipse 崩溃”,接下来这篇博客又被Slashdot等网站转载了数次。颇具讽刺意味的是,Ed 的博客实际上说的是周一发布的修复并没有解决问题——但由于 Twitter 140 个字符的限制,博文的标题变成了消息内容,后面跟着的是Ed 博文的链接

Twitter 等社交网络的出现也加快了事件在公众间的传播速度:

  • 即便是表面看起来无伤大雅的改变也会导致撞击效应(knock-on effects)。JVM 团队根本想不到会发生这种事,Eclipse 团队也不可能事先预料到商标会发生变化。然而,即便是小小的撞击效应“这么做根本没问题”也会导致难以预料的后果。最好的做法是发布一个 bug 修复版,将其余不必要的变更放到下一版当中。
  • 新闻标题的重复次数要远远高于内容。尤其是 Twitter,只有标题才适合于在 Twitter 上发布。如果通过“tweet this”按钮不断发布标题(就像 ZDNet 所为),那么它的传播速度要远远高于内容本身。有些人并不会阅读内容,只是根据标题来推断内容而已。
  • 无论如何,JDK7 都会修改商标。Oracle 为了获得 Java 版权而投入了大笔金钱,他们会在 JDK7 发布时修改商标。这应该是个前兆。
  • 这不仅仅是 Eclipse Helios 的问题。早在 Eclipse 3.3 中就使用了这种检测方式。Eclipse 的任何版本都会遇到这个问题,但目前的修复计划只针对 Eclipse Helios。
  • Eclipse 不仅仅只是个 IDE 而已,它是个平台。因此,这个问题不仅仅只影响到最新、最棒的 JDT(在任何情况下,只要开发工具更新了,开发者都会立刻升级)。然而,还有很多下游 IDE 和应用是基于 Eclipse 的商业应用;IBM 拥有一整套工具,Windriver 与 Oracle 也一样。在某些情况下,产品路线图要比 Eclipse 晚了整整一年时间;还有很多公司在为基金会与提交者支付报酬。“请升级到最新版以保证运行的稳定性”这句话无异于敲诈勒索。

这个变化对 Eclipse 造成了不利影响。要是没有 Oracle 敏捷迅速的思考与社区的团队精神,Eclipse(平台或是 IDE)的所有下游使用者都会受到影响。六年来,Eclipse 的发布过程说明:自从每年的同期发布出来后,Eclipse 几乎就没遇到什么关键问题,到第 5 或第 6 个里程碑时,几乎所有的问题都已被解决掉了(但有时需要返工到 Eclipse m5a 或 m5eh)。但今年 9 月的 3.6.1 发布计划还没法修复这个问题,更不必说 Galileo 3.5.3 版了。Eclipse 还从来没有遇到过发布后出现这么大问题的情况呢;虽然问题不是他们造成的,但能够保持对问题的快速响应可以表明他们是负责任的软件开发者。微软“Patch Tuesday”的批评家说到,将关键的补丁放到下一个发布周期中是断然无法接受的事情,Eclipse 的发布过程也是如此。

Oracle 已经表明了其足够的灵活性,可以在发布期间解决问题,但他们的做法是推迟而不是转移问题。未来,Eclipse 应该负责解决这个问题,他们不该仅仅负责使用 IDE 的那些人,还应该负责那些没有使用稳定版来构建应用的开发者。

查看英文原文:Oracle Fixes Eclipse's Java Problem

JavaOracle语言 & 开发