一些程序员们选择用 Java 代码编写他们的桌面应用程序是因为它们偏爱这门语言,但大多数程序员则是被多平台转换这一强烈的渴望所驱动。对 Java 平台作为桌面语言的兴趣于是就同非 Microsoft 桌面的数目紧紧地联系了起来。让我们认为 Java 编程会在来年出现在三大主流桌面上。 Swing 在下一年会继续对其类似 Windows 的外观作出小的改进,尤其是转换到开源开发这一部分。结果,纯 Java 程序如 LimeWire 甚至会比在 Windows 下看起来更加具原生感。但开发原生 Windows 应用程序所选择的语言仍是 C#(还有一些 C 和 C++ 的追随者),而开发框架会选用 .NET。Java 代码不会对 Windows 生态系统造成任何显著打击。 像 Microsoft 一样,Apple Inc. 也使用了相当多被抛弃的 Java 代码。Apple 公司喜爱 Objective C 和 Cocoa,但最后的结果是相同的:只用 Mac 的开发人员会继续减少 Java 代码,而选择 Apple 偏爱的语言和环境。 积极的一面是,尽管 Apple 不再在其私有的 API(如 QuickTime 和 Cocoa)中支持 Java 代码,Apple VM 已经比前些年改进了不少。Apple 的 Java 6 移植版不久就会发布。它不会是开源的(不同于 Sun 的 JDK),但开源程序员们还是会着手修补它的 bug。 GPL 许可协议将使这成为可能,即将 Java 代码绑定到最纯的开源 Linux 发行版中,这将使 Java 平台成为 Linux 开发中更为吸引人的语言。如果这些在五年前发生的话:Linux 社区将不会不得不挣扎于使用 C 语言,而 Mono 也不会成为必要。 已经有了针对 Gnome 和 KDE 的 Java 绑定,所以希望这些会在接下来的一年里吸引更多人的关注。也期望至少有一个即将进行的开发 Linux GUI 程序的主要项目使用 Java 语言而不是 C、C++ 或 C#。
如果我们只说一门语言,世界将会索然无味。尽管 Java 平台是开发成熟应用程序的绝佳选择,但它从来就不适应于小程序或宏。Java 6 意识到了这一点,它添加了 javax.script 包实现,以便和脚本语言(如 BeanShell、Python、Perl、Ruby、ECMAScript 和 Groovy)进行互操作,也添加了一项 2007 年,我将宝押在 Ruby 上,尽管它并不是我个人的最爱。对于我来说,Python 代码似乎比 Ruby 代码更简洁更易于理解,我认为大多数 Java 程序员都会这样认为。然而,Python 出来的不是时候。许多开发人员不得不在学习 Python 代码还是学习 Java 代码间作出选择,而多数人选择了 Java 代码。既然他们终于弄懂了 Java 语法,又打算在工具箱中添加另一门语言,他们想要的是明天的语言,而不是昨天的语言,而那门语言似乎就是 Ruby。更重要的是,Ruby 的 Ruby on Rails 是一个绝对杀手级的应用程序。它的简单性对于多数觉悟了的 Java 企业版(Java Enterprise Edition,JEE)开发人员来说具有难以置信的魅力。 除了 Rails,比起其他脚本语言,JRuby 项目和现有的 Java 代码很好或更好地集成到了一起。事实上,JRuby 也许会超越标准 Ruby 分布,并成为 Ruby 程序员们更偏爱的平台,而不止是 Java 程序员们将 Ruby 作为第二种选择。这很好。Python 程序员们会这样反对:他们这些年来已经将 JRuby 最好的方面加入到 Jython 中,他们是对的,但我讨论的是 2007 年将 发生什么,而不是应该 发生什么。这很不幸但却是事实:Ruby 获得了契机,而 Python 没有。 其他脚本语言会被逐渐逐出界外。Perl 太过时了,不能很好地适应现代应用程序。Groovy 缺少明确的视角,还趋向于将计算机科学的时髦用语凌驾于可用性和熟悉性之上,这让它深受其苦。BeanShell、Jelly,还有半打其他语言可能都从未吸引过超过一个的称心追随者。来年的这个时候,到处都会是这样的呐喊:Ruby 将成为 Java 程序员们首选的脚本语言。 |