`

你真的需要Java 7吗?

    博客分类:
  • News
阅读更多

你真的需要Java 7吗?
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!
分享到:
评论

相关推荐

    java7 32位版

    在提供的压缩包中,"java7 32λ.exe"可能是Java 7 32位版的安装程序。下载并安装这个执行文件后,用户可以在32位Windows系统上设置和运行Minecraft服务器。确保服务器配置正确,包括指定适当的内存分配、设置启动...

    java7入门经典完全扫描版百度网盘下载地址

    根据提供的文件信息,本文将围绕Java 7这一版本的基础知识、特性以及如何通过提供的链接获取《Java 7经典入门》这本书进行详细介绍。 ### Java 7简介 Java 7是Java平台标准版(Java SE)的一个重要版本,由Oracle...

    DELPHI 7 调用 JAVA 接口

    在IT行业中,跨语言通信是常见的需求,尤其是在不同的开发环境中,比如本文提到的Delphi 7与Java的交互。Delphi 7是一款历史悠久且功能强大的Windows应用程序开发工具,而Java则是一种广泛应用于服务器端和跨平台...

    哪本书适合推荐给 Java 初学者?

    * 《Java 虚拟机规范(Java SE 7 版)》:作者是 Java 编程语言的主要贡献者之一。如果你想系统、全面、深入的学习 JVM,绝对不能错过这本书。 J2EE * 《企业应用架构模式》:出自于 Martin Fowler 之手,软件设计...

    HL7解析 Java

    1. **安装与依赖**:在Java项目中使用HAPI,首先需要将HAPI的JAR包添加到项目的类路径中。描述中提到的jar包包含了HAPI解析HL7的代码示例,这通常是开发者学习和理解HAPI如何工作的起点。 2. **消息解析**:HAPI...

    如何在 Web 浏览器中禁用 Java?

    如何在 Web 浏览器中禁用 Java? 在本文中,我们将介绍如何在 Web 浏览器中...在 Web 浏览器中禁用 Java 插件可以提高浏览器的安全性和稳定性,但需要注意禁用 Java 插件的可能影响,并且需要根据实际情况进行判断。

    HL7 JAVA解析版本

    HL7 2.X解析(JAVA版) Hl7引擎的目标主要是解决将数据按HL7协议的要求标准化,和标准业务的集成和不同系统间标准业务数据的同步。在多年的医院信息化过程中,HL7标准组织和解析最复杂了。本次公开JAVA的

    Java 调用 SAP RFC 案例

    要使用JCo,你需要先在SAP系统中配置RFC目的地,然后在Java代码中设置相应的连接参数。 以下是调用SAP RFC的基本步骤: 1. **配置SAP RFC目的地**:在SAP系统中,通过Transaction Code "SM59" 创建一个TCP/IP类型...

    java源码包---java 源码 大量 实例

     Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...

    对接java AES/ECB/PKCS7Padding加密

    在IT行业中,尤其是在...总之,PHP与Java之间的AES/ECB/PKCS7Padding加密对接是一个需要细心处理的过程,涉及到加密算法、填充方式以及编码转换等多个环节。通过合理的代码实现,可以确保数据在两个平台间的安全传输。

    java7 32位.exe

    java7 32位,一个不错的插件,提供给那些需要的朋友们。呵呵。

    java中exe生成工具(JSmooth 0.9.9-7)

    Java是一种跨平台的编程语言,但在Windows系统下,用户更习惯于执行.exe可执行文件。JSmooth是一款专门用于将Java应用程序...如果你经常需要在Windows系统上发布Java应用,JSmooth 0.9.9-7无疑是一个值得尝试的选择。

    java JDK7 官网源码 core

    Java JDK 7是Java开发工具包的一个重要版本,它包含了Java语言的核心库和其他必要的开发工具。这个压缩包文件包含的源代码是Java JDK 7的核心组件,对于理解Java语言的内部工作原理、学习和调试Java程序非常有帮助。...

    java1.6或者java6 64位 windows

    7. **Swing和JavaFX**:尽管Java 6的Swing组件已经相当成熟,但JavaFX是一个新的图形用户界面(GUI)框架,旨在提供更丰富的图形效果和动画支持,不过JavaFX在Java 6初期仍处于早期阶段。 8. **安全增强**:Java 6...

    java代码实现短信猫发短信

    在Java代码中,你需要先找到并打开与短信猫相连的串口,然后建立输入/输出流。接着,通过输出流发送AT命令,从输入流读取响应。注意,发送每个命令后通常需要添加换行符(\r\n)以结束命令。同时,代码应包含错误处理...

    新手学java7编程

    本书正是为了帮助你学习Java程序设计基础而编写的。本书采用循序渐进的教学方法,安排了许多示例、自测题和编程练习。本书不需要读者具备编程经验,而是从最基本的基础知识,从如何编译并运行一个Java程序开始讲起。...

    原生JAVA读写PLC

    总的来说,使用Java 8进行原生的PLC通信是一个技术挑战,需要理解网络编程、协议解析以及工业控制系统的知识。但通过这样的实现,可以在跨平台的环境中灵活地集成PLC控制功能,而无需依赖特定的操作系统或外部库。

    java7_API帮助文档

    java 7 API帮助文档,java 7 API文档,用需要的赶快下载吧!

    HikariCP java7和8通用的jar包

    这个“HikariCP java7和8通用的jar包”意味着它兼容Java 7和Java 8两个版本,使得那些还在使用Java 7的项目也能享受到HikariCP带来的性能提升。 1. **HikariCP的基本概念**: - 连接池:在Java应用中,频繁地创建...

Global site tag (gtag.js) - Google Analytics