Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->Linux程序设计 ->Java 2007:新年展望
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 Linux系统下C语言编程 基础知识介绍 (05-01)
快速编辑Shell命令行(06-04)
Linux系统环境下的Socket编程详细解(04-19)
Awk 实例(一) (04-22)
基于libmad 的简单MP3流媒体播放器的(04-22)
精采文章排行
精采文章排行 快速编辑Shell命令行(06-04)
从2.4到2.6内核发展中的改进(06-04)
两个很详细的shell实例(06-04)
内核设计篇(06-04)
shell技巧(06-04)
  ·从2.4到2.6内核发展中的改进·两个很详细的shell实例·内核设计篇·shell技巧·批量添加用户·HowtoCreatingandBootingaNewKernelWitha·利用ip_conntrack表实现封ip的shell脚本,·30分钟搞定BASH脚本编程!·Shell初学者的入门知识

Java 2007:新年展望

作者:Elliotte Harold    来源:linux.chinaunix.net   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您

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() 这样的方法替换为像 -> 这样的操作符。

列表

最有可能的是使用数组语法来实现集合访问。例如,不再采用下面这样的代码:

List content = new LinkedList(10);
content.add(0, "Fred");
content.add(1, "Barney");
String name = content.get(0);

而是编写如下代码:

List content = new LinkedList(10);
content[0] = "Fred";
content[1] = "Barney";
String name = content[0];

另一种可能性是:允许为列表使用数组初始化程序语法。例如:

LinkedList content = {"Fred", "Barney", "Wilma", "Betty"}

这两项提议都可以在不改变虚拟机(VM)的前提下由编译器稍显神通即可实现,这是任何修订过的语法的一项重要特征。这两项提议都不能使任何现有的源代码失效或重定义现有的源代码,对于新语法来说,这是一个更为重要的问题。

真正能够影响开发人员生产力的特性功能应该是用于管理表、树和映射表的内置原语,比如在使用 XML 和 SQL 时遇到的那些。JavaScript 下的 E4X 项目和 Microsoft 的 Cω 和 Linq 项目是实现这一想法的先驱,但可悲的是,Java 平台似乎错过了这个机会。如果有人想要通过编译器来玩一个潜在的救场的游戏,这里是一个不容错过的好地方。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 3 4 5 下一页

上一篇:PHP也可以当成Shell Script使用   下一篇:基于libmad 的简单MP3流媒体播放器的实现
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·快速编辑Shell命令行

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。