2011年Java展望:新的开始 新的征途

对Java来说,2010年是不平凡的一年,从Oracle在年初完成对Sun的收购,使大家对Java的未来充满了关注,而12月份在北京进行的JavaOne大会,可以说是Oracle在收购Sun之后的第一次正式大会,大家可以从JavaOne上更多了解了Java未来的发展。而2011年,将成为Java新的开始。

  Java走过了它15年的历程,在日新月异的IT技术领域不算年轻,但它一直没有停下变革、创新的脚步。Java已经不单单是一种计算机语言,很多情况下,我们称它是一个平台,一个社区。下面从Java SE、Java EE、Java ME、JavaFX几个方面,展望Java技术在2011年的发展。

  Java SE

  从Oracle公布的Java未来战略我们可以看到,Oracle目标是加强和继续扩大Java在新领域的应用,并将Java平台纳入新的部署架构,加大对Java社区的投资,允许社区更多地参与。开发人员比较关注的Java SE 7将会在2011年夏天就绪,其中JCP已经批准了JSR 334、JSR 335、JSR 336和JSR 337等,支持改进Java语言和API规范,比如switch in string、multi-catch、泛型实例创建中的precise rethrow、Lambda表达式(闭包)等。而Java SE 8也将在SE 7发布之后的一年到一年半的时间就绪。

  Java SE 7展望:

  模块化的VM:可以将VM拆分成小块由应用程序使用,并按需推向Internet,这样的结果是Java应用程序的启动时间更短了,当VM不在目标机器上时,下载的时间也更短了。

  额外的语言支持:Java平台支持用不同语言编写的应用程序,未来将会添加更多的语言支持,当然也包括对动态语言的支持,这就是所谓的达芬奇机或多语言虚拟机,请参考JSR-292。

  增强的多核支持:需要借助工具、库和内置设施帮助新的和现有的Java应用程序更有效地利用多核硬件的优势,Java的线程模型可以轻松地创建并行执行任务的线程,但你如何将一个单一的任务拆分成多片进行并行执行呢?

  其它改进包括持续的性能改进,以及许多语言方面的增强,包括增加的闭包,在switch语句中对Strings的支持,以及多块异常捕获,闭包是一个有争议的功能,它是通过使用匿名的Java内部类实现的。

  Java EE

  Oracle长期以来一直都是Java的支持者,也是最大的JCP成员之一,10多年前就开始参与Java EE规范的编制,因此对Oracle成为Java中间件市场的大鳄不应该感到意外。

  Java EE展望

  模块化,开发标准:Java EE 6通过配置文件(Profile)定义实现了模块化Java EE,允许厂商根据特定需求创建更小的Java EE堆栈子集,解决成本和Java EE使用复杂问题。通过模块化设计和定义标准,有助于简化Java EE,让它的应用领域更广泛。

  Java EE 6规定了两种配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企业配置文件。显然还可以定义更多的配置文件种类,例如,为支持会话初始化协议(SIP)定义电信服务器配置文件。

  UI和RIA:HTML仍然是Java EE应用程序隐含的UI协议,通常有Java Servlet、JSP和JSF生成,考虑到生产的Web页面是静态的,可以使用Ajax技术,不过它已经超出了Java EE的范畴。

  虽然Oracle没有明确这方面的具体计划,但未来Java EE和JavaFX集成时将会解决Ajax问题。

  Java ME

  作为Oracle首选的移动环境的Java,这个堆栈未来默认的呈现方式将会是HTML、CSS和Javascript。Java ME将包含WebKit引擎,JavaScript. 引擎和Java/JavaScript.桥,换言之,未来运行新版Java ME的手机,将能够访问浏览器以外的 Web 服务,而不会有任何性能问题。这些引擎将直接插入Java ME虚拟机和插入Java FX。

  Oracle的JavaME引擎,将利用当代图形硬件加速器所擅长的(60 frames/秒)二维和三维渲染(在 Windows 环境下,微软的Direct X,还有 OpenGL或未来"更好"的技术)。 Java ME将会针对ARM7和ARM9芯片组进行优化,包括Broadcom、三星、NEC、德州仪器以及其他取得授权的手机部件制造商,还将内置充分利用手机装置的支付,通话,和定位等功能的API。

  JavaFX

  随着JavaFX和Java的整合,并运行于JVM之上,它的富媒体处理及二维和三维渲染功能,也将能提供给任何在JVM上运行的其他编程语言,这意味着,例如Groovy、Scala和JRuby等也都能用来整合JavaFX的能力。

  JavaFX展望:

  基于可视化组件创建一个设计范式
  为JavaFX应用程序创建一个丰富的UI扩展库
  提升所有平台的JavaFX性能
  增强跨设备移植JavaFX应用程序的能力
  与Java,JavaScript和HTML 5无缝集成
  支持新兴设备和UI范式(如多点触摸)