Bruce Eckel观点:Java7: 更新太小,太晚?

来源:互联网 发布:二维数组作为形参 编辑:程序博客网 时间:2024/04/29 20:01

Java自从被Oracle收购以来就一直热点不断,最近Java 7的推出,Oracle和Google的Java专利侵权诉讼又搞得满城风雨。我翻译了 Bruce Eckel(《Thinging in Java》作者) 对于Java 7的一篇评论,他从技术的角度对Java 7的更新情况发表了看法。


英文原文地址如下: 

http://www.artima.com/weblogs/viewpost.jsp?thread=332347

文中提到的O'ReillyOSCON Java 2011上的JDK 7 in a Nutshell演讲地址:

http://www.youtube.com/watch?v=7nkB3hxH5po&feature=relmfu


Java7:改进太小,太晚?

作者: Bruce Eckel

2011年8月6日

摘要:

        我热爱Python语言的一个重要原因是,这门语言一开始就是基于社区的。Python语言的设计方案需要经过社区的真诚的讨论和争议才会决定。然而Java语言给我的感觉,就仿佛我是一个小孩,总被大人说教该做这做那。

        我刚看了Joe Darcy在O'ReillyOSCON Java 2011上做的JDK 7 in a Nutshell 演讲(9.5分钟)。他在演讲中提及到了一些类型弱化特性(type inference)的内容,因此在这里我们就不必再重复提及那些饱受争议的,强加给我们的语言新特性了,例如,switch对String类型的支持。

        如果12年前有人告诉我Java语言实现了这些新特性,我也许会认为这门语言运行在正常的轨道上,试图让编程工作变得更简单清晰。然而,现在我觉得,我们这十几年以来一直被告知,Java语言所做的改变和特性都是最好的,用户必须接受和热爱这些改变和特性。对此,我感到很纠结。

        例如,Scala语言在一开始设计的时候就决定将类型弱化作为语言的核心特性,而不是在类型设计上做事后诸葛亮。因此在Sclala中定义一个对象变得非常简单明了,如人所愿。Java 7至今才加入这些类型弱化特性,可是无法改变人们对它复杂的印象。

        通过Scala语言的模式匹配特性,你可以将switch用在几乎所有的东西上面。那些对Java语言限制switch类型为整型(原始类型或包装类)而感到崩溃的人,绝对不会因为现在switch多支持一个String类型而改变看法。

        Java正在做出改变,这当然很好!Java曾经改变过人们对编程领域的基本看法。例如,在Java出现之前,没有人相信虚拟机技术和垃圾回收技术是真实可行的。但是,在我看来,这些仅仅是编程世界过去开始发生变化时的一小步而已。像Scala, Groovy, JRuby, Jython和许多其他的Java虚拟机语言,它们能产生更高的生产力和经济效益,因此阻止这些语言走红会越来越困难。



原创粉丝点击