技术开发 频道

展望Java未来 走进2010年 Java圆桌会议

  Project Jigsaw

  JDK 应该模块化的争论应追溯到 90 年代中期,但对 Java 模块性的兴趣 — 或对可实现解决方案的希望 — 在过去数年中已经激增。作为 OpenJDK 项目的一部分,Project Jigsaw 是 Sun 在 Java 7 发行版中模块化 JDK 的努力。

  我们向与会者提问 “Project Jigsaw 与 OSGI 的关系是什么”,以及 “是否能够满足模块化 Java 平台和编辑模型的需求。”

  Chris Mackie 说,“我怀疑并没有一个正确的模块化 Java 解决方案。可以很容易发现关于‘正确’的模块性有许多立场。”

  在提及关于模块化的 JSR 时,Alex Miller 表示,“我认为围绕 JSR 294、277 的整个过程以及 Project Jigsaw 从一开始就没做好。相关人员目的性很强,但我还是希望最终产品能是我希望的那样。

  “我认为 OSGi 是一项伟大的技术。我并不认为它是唯一的解决方案”,他说。

  我们需要的是一个 “可允许版本跟踪,支持编译时和运行时版本依赖性检查的工具,以及一个开放元数据组件系统”,Ted Neward 说。相反,Project Jigsaw 已经 “变为另一种复杂的 OSGi 和 Maven”,他说。

  “很让人不耻,因为我认为 Mark Reinhold 和 Alex Buckley 在模块性方面的展示确实非常有吸引力”,Miller 补充说,“集成模块定义、依赖关系管理和紧密部署的概念可支持 CPAN、Ruby Gems 或 Groovy Grape 系统,并且能更好地构建和部署 Java 软件。”

  但是,模块化 Java 平台也有其缺点和批评者。

  “我认为 Project Jigsaw 不切实际”,Steve Perry 说,“他们提议的解决方案几乎没有丝毫引起我的兴趣。”

  “模块性解决方案正日趋成熟的事实说明大部分已有 Java 应用程序,虽然它们可能会从模块性中受益,但都没有这一必要性。对于许多应用程序来说,模块性可能会弊大于利”,Mackie 说。

  他说,“但是,模块性在移动环境的 Java 开发中非常重要。举例来说,如果没有它,我们将很难看到 Java 会在智能手机上普及。”

  Dan Allen 说,“移动应用程序并不需要 JVM 带来的所有功能。如果 Sun 接受模块 JDK,Android 和 Java ME 的分开就不会发生。”

  Java 和多语言 VM

  此前,一些 Java 社区人士(其中一些为 developerWorks 写文章)争论 Java 语言是否已经死亡,或者像 COBOL 一样死亡(请参阅 参考资料)。如今,更深层次的问题是 Java 语言是否已死亡有什么影响,因为 JVM 上还有许多其他语言。

  Andrew Glover 说,“多语言 VM 让 ‘Java 已死亡’ 这一诊断或多或少变得饶有趣味。Java 是一个平台!如果 Java 语言缺少一些我所需求的特性(或者出现在其他语言时),那么我可能会选择其他语言。”

  他说,“Java 的真正强大之处是语言干净地脱离了虚拟机。JVM 的可靠性可允许开发人员混搭语言,发挥这些语言各自的优势。”

  Alex Miller 说,多语言 VM(已经由 OpenJDK Da Vinci Machine 项目实现)将为 Java 开发人员提供少有的机制,可以将工作侧重于语言互操作性、元对象协议和其他方面。

  Miller 和其他人同意大企业软件公司继续在 Java 中大笔投资。

  Dan Allen 说,“Java 是一种非常易于理解的语言,并且对于公司开发人员来说非常不错。挑战是如何积极地发展该语言。需要引入新的语言特性,并且需要消除不推荐的用法!没有人在使用 Java 5 注释时还在使用 Java 1.1 中的旧式代码。”

  Ted Neward 还呼吁 Java 语言设计人员 “了解其他语言的环境 — 从 C++、C# 和 Visual Basic 开始 — 并确定一组可再次焕发 Java 活力的新特性。”

  Mik Kersten 说,“Java 作为一种面向对象编程为我们提供了极好的基础。它做到了,也发挥了作用,但它需要继续上升一个台阶。但从社区的角度来说,我们不需要确保 JVM 上能出现额外的创新。”

0
相关文章