电脑技术学习

你真的需要Java 7吗?

dn001

James Sugrue说道:等待Java 7发布已经很长时间了,同时Java社区对JSR标准最终版一旦发布有很多猜测。我也期待即将到来的Java 7,以及其中我真正需要的部分。

真正思考过,我发现对于Java新版本的需求并不是那么迫切的,由于以下原因:

1.Java 5和6已经满足了开发者对JDK的大部分需求。

2.我期望未来的版本是一个精减蓝图的JRE,同时Java 6;update;10已经做了精减。

3.我们已经有了如此多的框架,所以,我们不再依赖于JRE环境的变化。

4.Sun把太多发布重心集中于JavaFX,也许这已经取代了对于下一个Java新版本的兴奋。

无论那种方式,在阅读了多种关于Java 7的预测,我决定把我自己对Java 7的期望列表列出来:

No Closures 不要闭包

Neal Grafter已经有了一个完整的闭包原型,但是我不确认这应该成为Java 7的一部分。当我几个月之前访问Joshua Bloch,我询问了他关于闭包讨论的意见:

Joshua Bloch 写道正如读者从第一版开始所知道的,我认为简单明晰的价值高于一切,因此,不要感到惊讶,我不想看到Java编程语言再添加核心内容,作为一个语言,它现在已经相当复杂。如果Java程序员要使用语言中不存在的功能,我认为他们最好使用以JVM为目标的其他语言,比如Scala和Groovy.

我100%赞成这个观点,简洁是最关键的,但是增加闭包让事情更复杂。这个功能已经造成Java社区分裂几个阵营,至少现在,很多人只是感到包含这个功能不妥。如果不了解闭包,这里有一些很好的介绍。

更好的I/O

这是我确定无疑期待的。引入NIO是这几年最好的事情之一,JSR 203将包含更好的文件系统APIs.再David Linsin的博客上有一个精彩的JSR概述,Java.net也有一篇优秀的文章。

让Swing更加容易

我不是说Swing太复杂或者其他,但是JSR 296是一个受到欢迎的添加。它的目标是让用Swing开发桌面应用更加容易-这是很需要的部分。Eclipse RCP封装了桌面应用栏,Swing应该具有相应的竞争力。JSR 296让Swing更容易,更快,更好的创建的Swing程序。

在Sun开发者网络上有一篇优秀的文章概述了如何使用新的Swing应用框架。Geertjan也写了一篇文章描述它带来实际的好处。

如果你需要跟踪关于Java 7的讨论,最好的地方是Alex Miller的Linkblog.这个地方让我得到很多关于即将发布的Java 7的基本信息。

你已经阅读我对Java 7应该包含的内容,你的看法呢?你真的需要Java 7 吗?

——————————————————————————————————-

此篇文章引起了很大争论,摘选一部分回复:

Jacek说道:

我很不赞同作者的意见,Java已经落后于很多其他语言(尤其是C#),Java很多方面缺乏一些基本的语言功能,比如:

1.缺少多行字符串string处理功能(Groovy/Python/Ruby拥有)

2.string字符串不能通过正则表达式或者内置路径换码(C#/Python能够)

3.regions区域(这对于组织管理源代码很有好处,C#拥有)

4.closures闭包(Delphi拥有,以及相关的COBOL将拥有闭包,比java快)

5.自动资源管理(arm拥有)

6."真正的" properties 功能能够在盒子box之外进行数据绑定(比如:每个set()时候需手工使用firePropertyChange() )

7.没有好的数据绑定解决方案。

以及我认为Java应该吸收的其他语言的优势,比如

- mixins (Ruby)

- LINQ (C#)

- lambda functions (Python)

我认为Java要长期发展,必须不停进步。

以及其他阅读者观点:

-谁能告诉我为什么C#拥有闭包,而Java没有?

-我不需要新的语法,但是我需要新的Date和Time API,java.util.Date class非常靠不住。

-我非常讨厌看到使用Groovy或者Ruby的言论,对于大型企业,转换语言是非常困难的!我们需要Java来解决问题。

-为什么不能有闭包呢?C#, C++, Delphi, JavaScript, Ruby, Python, Haskell, Scala, Groovy, Smalltalk, Lisp, D, VB.NET and Perl 都有,而且很有用。连PHP都支持闭包。

-Silverlight 2很有趣,我也用IronPython写了一些小例子,我也使用Python PyAMF或者Java 和JSR 311Jersey写Flex例子,我希望Java能对Flex的支持更好。Sun应该出台更有效的措施,而不是浪费时间坐等JavaFX!

标签: