文章
Java
| 作者:Janice J. Heiss |
|
Steven G. Harris 是 Oracle 的应用服务器开发高级副总裁,负责监督 Java EE 的产品开发,他在 1 月 24 日的国际 Oracle 用户群社区 (IOUC) 峰会上发表了演讲。Harris 多年来一直在 Oracle 担任 Oracle 与 Sun Microsystems 之间的联络人,目前领导着 Java 服务器开发团队,他清晰而深入地阐述了 Java 平台的现状、目前面临的挑战以及 Oracle 对 Java 的未来发展愿景。
他指出了自 2010 年 JavaOne 大会以来的最新变化,充实和加强了早期 Java 路线图,并与大家分享了 Oracle 对 Java Community Process (JCP) 的观点。Harris 坦承,尽管 JavaOne 在内容和目标一致性方面非常成功,但就开发人员有关物流的反馈及论坛建议来看,Oracle 在某些方面仍有极大的改进空间。为了对 JavaOne 加以改进,他直接征求了与会者的意见。他称赞已促成像 Devoxx 这样重大会议的 Java 用户群是“全世界 Java 开发人员的真正财富”。
Harris 解释说,Oracle 的整体战略是提供一个全面、开放、集成的硬件、基础架构、数据库、中间件和业务应用程序体系。他说:“目标是使硬件和软件协同工作,从而提供更出色的可管理性、可服务性以及其他特性。因此,购买我们的产品,您的投资将获得更大的价值。”Harris 解释说,他希望 Java 开发人员了解 Oracle 在盈利方面更长远的动机。在以创新方式努力集成和优化硬件与软件的方面,他解释说,Oracle 强力支持开源 Java 社区。
“我们真的希望 Java 成功,因此将继续保持 Java 的开放状态,让开发人员参与 Java 的工作是我们取得成功的关键。” 应用服务器开发高级副总裁,Oracle |
据 Tiobe 编程社区排行榜显示,Java 依然是全球最流行的编程语言。尽管 Java 大量分布在 Oracle 公司中,但其语言和平台在 Oracle 的中间件组织中表现最为出色。“说到融合中间件,我们的所有中间件都是用 Java 编写的,”Harris 补充说。“因此重点在于:如果 Java 不能成功,我们也将失败。我们真的希望 Java 成功,因此将继续保持 Java 的开放状态,让开发人员参与 Java 的工作是我们取得成功的关键。”
他指出,全球约有 1400 万名 Java 开发人员,其中约 900 万人在日常工作中使用 Java。“就 Java 整体而言,最出色的一个方面在于,如果您掌握了语言、了解了平台和库,那么在开发中就可以有无数种部署选择和方法实现您的目标 — 无论是针对企业、桌面、移动还是嵌入式领域。”
Harris 表示,Oracle 致力于使 Java 获得全面的成功,重点关注扩大开发人员群体和提高采用率。他承认,Java 因发展步伐过于缓慢、过程过于繁琐和僵化而受到批评。但他坚持认为,“我们正在竭力加速 Java 的发展,提高 Java 的竞争实力,凭其优势使之成为您的首选开发语言。”
他强调,Oracle 需要密切关注人们使用、开发和部署基于 Java 的应用程序的方式,从而尽力保证 Java 本身与这些工作协调一致,而非与之背道而驰。Oracle 正在尽力确定实现这一目标的方法。Harris 说:“社区是这项工作的重要组成部分,不仅包括开源社区,也就是由过去的 Sun 和现在的 Oracle 推动的 OpenJDK、GlassFish 等社区,还包括实现和促进 Java 工作以及独立框架类型的 Eclipse 和 Apache 等社区,其中许多工作是由私营企业驱动的。他们都是帮助我们取得成功的整体生态系统的一部分。”
尽管 JCP 近年来面临着诸多挑战,但他坚持认为 JCP 对于 Java 的成功极其重要。“它确实有其不足之处,涉及大量政治问题,”Harris 承认说,“但它无疑也是使我们所有人聚集在一起讨论希望 Java 未来走向何方的最佳场所。”
Harris 提到了 JCP 的发展和自愈能力,JCP 曾经是 Sun 推动的组织,现在已经调整为开源组织和过程。“在未来的一两年中,”他预测说,“随着平台发生变化,人们将以全新的方式使用 Java 技术,随着模块化的实现,我们将不得不改变思考和测试平台合规性的方式。所有这些讨论都需要在 JCP 中进行。”
Harris 称赞了致力于交付 JDK 参考实现的开源项目 OpenJDK 的发展势头,还提醒参会者们 Red Hat 对该项目的持续积极的参与。他将 IBM 加入 OpenJDK 的举措视为一项重大成功,他表示:“IBM 将积极参与 OpenJDK 类库演进的工作。当然,我们也将继续在所有其他领域保持激烈的竞争,会有我们自己的 VM 实现,但就类库工作而言,我们将在 OpenJDK 项目中携手前行。”
他提到了 JDK 7 的重要主题,其中包括通过 invokedynamic 支持多种语言、通过 Coin 项目中的细微更改提高开发人员产能、NIO.2 和文件系统 API、并发编程以及由 Doug Lea 社区工作推动的分叉/合并框架。他认为,HotSpot 与 JRockit 的融合将大幅提升 G1 垃圾回收器等技术中的性能和可服务性。
他区分了两个开发分支:Java SE 7,在 Oracle 接手之时,Java SE 7 已经取得了长足的发展;另一个是 Java SE 8,这项工作中将包括更为长远的项目,例如模块化和闭包等。Java SE 7 已经具备了完整的特性,而 Java SE 8 项目才刚刚起步。他提到,有超过 10 亿个桌面正在利用 Java,并将 JavaFX 视为 Oracle 的一个主要计划,Oracle 会致力于使 JavaFX UI 控件实现开源。
他提到,有 30 亿台手持设备正在使用 Java,并且指出 Oracle 将通过 Java ME.next 推进 Java ME 的发展。目标是跟上 Jave SE 6 的发展步伐,集成像 LWUIT 这样的新 Web 技术,并为加速器和近场检测等技术开发 API。
“就产品规划而言,”Harris 解释道,“Java Wireless Client [PDF] 是为移动设备提供的主要渠道。我们还有 Java 嵌入式和媒体客户端,更侧重于为蓝光设备和电子书阅读器等嵌入式设备构建特殊解决方案。所有这一切都由免费的开发人员产品提供支持。因此,Java ME SDK 结合了原有工具包的 CDC 和 CLDC 版本。Java Card SDK 打包在 NetBeans Mobility Kit 中,可以更轻松地访问所有内容。”
他提到,Java EE 5 得到了广泛的采用。Java EE 6 于 2009 年 12 月发布,附带了初始 GlassFish 发行版。自此之后,随着 JBoss 发布了 JBoss AS 6 版(兼容 profile 的 Java EE 版本),Java EE 得到了迅速的采用。大量其他参与者继续开展了全面的合规性工作。
“至此,Java EE 6 已经获得全面认可,”Harris 说,“包括其 Web profile 在内,这种 profile 的作用在于使开发基于 Web 的应用程序所需的最广泛组件实现标准化。其中还包括 POJO 开发方面的标准化,特别是依赖注入方面的标准化。现在使用 Java EE 6,Java EE 开发人员需要编写的类、XML 和代码都少了许多。开发人员社区对此倍感兴奋 — 在他们亲自动手实践 Java EE 6 时,发现这种产品非常出色。”
目前,大多数 Java EE 7 规范都已在 JCP 内启动,得到了执行委员会的一致通过。
“GlassFish 对于 Oracle 有着重要的战略意义,”Harris 说。“这是一个开源项目,贴近我们的心声。GlassFish 社区中发生的一切将作为如何与开源社区交流、如何与开发人员协同工作的整体指南。因此,我们将继续关注高速下载、小规模和基于 OSGI 的微内核。我们在 Oracle 内部开展了大量与共享模块有关的工作。”
他提到了近期启动的 GlassFish Server 开源版 3.1,获得其称赞的不仅是这个项目强大的技术力量,还包括在其清晰可见的路线图中提供的开源交付流程,以及连续不断的意见和反馈,就像此前 Sun Microsystems 所做的那样。
Harris 提到,GlassFish Server 开源版是由 Oracle 提供支持的最佳开源应用服务器,是轻量级 Web 应用程序的首选开源平台。Oracle WebLogic Server 是适用于事务型 Java EE 应用程序的最佳商业应用服务器,是标准化的首选平台。Oracle 融合中间件和管理软件产品都基于 Oracle WebLogic Server。
“作为一个平台,解决与云计算相关的问题对 Java EE 至关重要,”Harris 说。“我们正在竭力进行这方面的工作。”在这个领域中,仍有许多问题尚未确定,JCP 将是达成共识的关键。但他坚持说:“我们或许都应认同,将这种平台推到云计算的风口浪尖极为必要。”
他注意到,目前 Java EE 侧重于具有一组定义角色(如开发人员、容器提供者或部署者)的单一服务器,他提出了一些关键问题:我们如何将数据中心作为整体对待?我们如何处理服务器集群?我们如何部署到成组的服务器?如何知道一切将正确伸缩?如何管理整体环境?如何打包和部署一切?我们如何处理多承租方或者如何处理应用程序、版本控制和隔离?Harris 注意到,模块化将是解决这些问题的关键。
他强调,对于每个 Java SE 版本,都应有一个对应的 Java EE 版本。因此,Java EE 7 的模块化的发展将存在严峻挑战。“在 Java SE 8 之前,JDK 中实际并无模块系统,那么我们如何使用模块系统?”他问道。“我想这是一个容易处理的问题 — 我对此持乐观态度,我们一定能解决这个问题。如果能够从根本上有效地使用模块化,那么就能更有效地应对云计算带来的挑战。理想情况下,我也更希望看到表明如何将此发展到 Java EE 8 的路线图。我们不必一次解决所有问题,但需要有所进展。”
总而言之,Harris 将 Oracle 的 Java 愿景描述为一种引人瞩目、充满挑战的愿景 — 我们无疑要付出大量努力才能使 Java 继续作为目前最受欢迎、最高效、最成功的编程语言。
Java 热点新闻第 22 集:Steve Harris 谈 Java EE 7
关于作者
Janice J. Heiss 是 Oracle 的 Java 策划编辑。
阅读本文的英文版本。
前往 Java 中文社区论坛,发表您对本文的看法。