您的位置:首页技术文章
文章详情页

Java 2007新年展望:开源后将走向何方

【字号: 日期:2024-03-16 18:34:48浏览:3作者:猪猪
在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台的新方向,从脚本到 bug 修复到新语法。Sun 会在几个月后发布 Java 7,Dolphin 的一个早期的 beta 版,以此作为开端。早期的一些探寻分支

2007 年将是载入史册的一年,Sun Microsystems 公司将于这一年在开源许可协议下发布 Java 开发包(JDK),从而放弃了对 Java? 平台的统驭,将权力交给了 Java 开发人员社区!在本文中,Java 开发人员 Elliotte Rusty Harold 从各个方面预测了 Java 平台的新方向,从脚本到 bug 修复到新语法。

2006 年又是 Java 平台繁荣的一年。尽管遭遇了来自 Microsoft(C#)和脚本语言社区(Ruby)的冲击,但 Java 语言仍然保持着其世界头号编程语言的地位。同时,尽管 Java 6 的发布很值得庆祝,但比起宣布 Java 将在 GNU General Public License 下完全开源这一事件来说,却不免有些黯然失色。Java 在 2007 年还能保持这种势头吗?让我们来看一下成败的可能。

Java 平台将成为开源平台

2007 年上半年,Sun 将在一个开源许可协议下发布 Java 开发包(JDK)。解除 JDK 的禁锢对于 Java 开发人员社区来说是巨大的一步,它将在今后的十年中推动 Java 平台的发展。

JDK 的质量将会显著改善,因为程序员们不再仅仅报告 bug 并开始修复。Java Developer Connection 的 bug 报告将会包括对 JDK 中的问题部分的详细分析,并提供修复的补丁。正如Linus 法则 所陈述的那样,“只要给予足够的关注,任何 bug 都是显而易见,即调试是可并行进行的。优化也是一样。开源使两者得以 并行。

分支项目

遗憾的是,设计并不是和调试、优化一样可以并行完成的。清洁的 API 有时也需要有一只独裁的手。但独裁者的缺点是:有时他们知道在做什么,有时却不知道。意图成为独裁者的各方面之间的竞争往往是发现问题最佳解决方案的惟一方式。

很少有公司能够负担得起这样的代价,为一个产品开发多个独立的实现,以便在多个产品中选定保留一个而摒弃其余的产品,但开源社区却在朝这个方向努力。所以,您会在 Java 平台的各个层次中发现分支产品:语言、虚拟机和库。大多数的分支产品会失败,但这没什么。好主意会脱颖而出。一些分支产品会一直存在下去,一些会重新并入标准 JDK 中。明年的这个时候,分支产品与主流产品之间的差异也许不会很明显,但这个过程会继续下去。

Sun 会在几个月后发布 Java 7,Dolphin 的一个早期的 beta 版,以此作为开端。Sun 无法发布更早的 JDK 版本,因为存在一些只有在 Dolphin 中才能解决的构建问题和许可协议问题。尽管如此,仍有望看到第三方着手进一步细分 Sun 的版本,来提供 Java 6、Java 5、Java 1.4,甚至更早版本的流行开源实现。

早期的一些探寻分支产品的人们可能会侵犯 Sun 公司的商标,收到 Sun 的律师寄来的讨厌的律师信。我们需要一个通用的未注册为商标的名字,让所有人都能使用。我建议用 “J —— 我希望没人用单字母作商标。

开源项目从未消亡,只是有些褪色。就像之前的 Blackdown Project、GNU Classpath、Kaffe 和其他开源 JDK 项目一样,他们的开发人员都转向其他事情了。如果一个项目至今还没有达到 1.0,那么恐怕以后永远也达不到了。

期待 Java 7

Dolphin 不会在 2007 年发布。2008 年是更为现实的目标。那就是说,工作尚在进行中,它的一些功能也许会作为早期的标准扩展或至少作为 beta 登场。

遗憾的是,为一门语言添加功能远比删除功能要简单得多。几乎不可避免地,随着时间的推移,语言不是朝着简单的方向发展,而是越来越复杂,越来越让人困惑。即使是那些单独看起来很好的功能,在彼此叠加后也会出现问题。

令人遗憾,Java 社区没有接受这个教训,尽管这种失败并无特殊性。但总有一些太酷又太让人激动的新语法令语言设计者难以抗拒 —— 即便这样的新语法不能解决任何实际问题。于是对 Java 7 的新语言功能就有了巨大的要求,包括闭包、多继承和操作符重载。

我猜想在这一年结束前,会在 Java 7 beta 中看到闭包,也许还能看到操作符重载(有五成的把握),但不会出现多继承。Java 中有太多东西是基于单个根的继承层次。没有可行的方式改进多继承,使之适应这门语言。

目前有许多语法糖方面的提议,有一些有意义,有一些没有。许多提议都专注于将像 getFoo() 这样的方法替换为像 -> 这样的操作符。

……

完整文章请察看原文:http: //ibm.csdn.net/ISN_J.aspx?action=JMP&pointid=1530

标签: Java
相关文章: