java 拼图_Java 9:“拼图计划终于给了我们急需的Java安全带”

Java9引入了模块系统,旨在提升应用的安全性、可伸缩性和性能管理。核心功能包括Project Jigsaw,有助于复杂应用的组装与维护。同时,jshell工具简化了代码实验过程,为学习和理解Java类与方法提供了便利。尽管模块化带来了维护工作,但长远来看,它有助于创建更结构化、易于维护的代码。

java 拼图

Java 9终于来了 。 它提供了150多种新功能,包括新的模块系统和相当多的改进,这些改进有望带来更高的安全性,更多的可伸缩性和更好的性能管理。

该发行版的明星当然是Java平台模块系统,也称为Project Jigsaw。 其目标是帮助开发人员可靠地组装和维护复杂的应用程序。 此外,开发人员只能捆绑在部署到云时运行应用程序所需的JDK部分,因此可以说模块系统也使JDK本身更加灵活。

如果您不想立即进入模块化生态系统,则应该知道可以在不使用模块的情况下开始使用JDK 9。 正如Oracle公司Java平台事业部开发副总裁Georges Saab在几个月前告诉我们的那样 ,“类路径仍在起作用,这就是许多开发人员可能会开始使用JDK 9的原因。”

还请参见: “拼图在一段时间内对于消费者而言并不重要-我们已经拥有Maven和OSGi”

我们与Marcus Biel,CleanCode传播者和JCP成员讨论了他在Java 9中最喜欢的功能,未包含的功能,Project Jigsaw和新版本编号方案。

您最喜欢的功能是什么?为什么?

Marcus Biel: 我认为jshell非常酷,尽管我不会将其称为我最喜欢的功能。 如果我真的想弄清楚一个类或方法是如何工作的,我更愿意直接对代码进行试验。 与文档不同,代码从不说谎。 另外,最好通过编程来学习编程。 jshell是为此的理想解决方案。 我一直对“简短地”运行几行代码所需的开销感到恼火。 有了jshell,现在变得如此简单-人们应该立即尝试一下!

编程最好通过编程来学习。 jshell是为此的理想解决方案。

JAXenter:是否有您想在Java 9中看到但未包含的功能?

Marcus Biel: 我希望他们修复过去做出的一些错误决定,而不是添加更多新功能。 Java现在已有20多年的历史了,因此进行清理不会造成任何伤害。 在@JcreteUnconf,我参加了一个会议,收集了一些我们认为应删除或调整的想法。

例如:

  • 检查异常
  • 可序列化
  • 基本类型
  • 可克隆的
  • 向量和哈希表
  • 空引用
还请参见:
您是否将开始使用或不使用模块?

Marcus Biel: 拼图的模块化方法是朝正确方向迈出的一大步。 但是,迁移到模块化系统首先会造成伤害。 适当地模块化更大的项目并不容易,这将花费大量时间。 我目前正在为一个首次切换到Java 8的客户端工作,因此Jigsaw将不得不稍等一下!

相反,它成为Java 9的主要功能-值得等待吗?

Marcus Biel: 模块化Java是一个重大变化。 准备就绪之前,不得将任何功能踢出门。 因此,是的,值得等待。

对我来说,实际的问题是:将Java的总体进度推迟几年以使Jigsaw发生是正确的决定吗? 拼图游戏的工作始于2008年,差不多十年前! Jigsaw最初是为Java 7设计的。只需查看各个Java版本之间的间隔即可。 在Java 7之前,发布要花一到两年的时间。 此后,时间间隔不断增加。 也许其中部分原因是拼图?

作为响应,Oracle现在已从以前的功能驱动发布计划转变为严格的时间驱动计划。 将来,更新将每半年发布一次,而不受任何特定功能的限制。 因此,Oracle的意图对我来说似乎很清楚。 他们已经意识到,单一功能不应破坏整个发行计划。 我可以落后。

对我来说,实际的问题是:将Java的总体进度推迟几年以使Jigsaw发生是正确的决定吗?

您认为更改它是个好主意吗?

Marcus Biel: 总的来说,我认为最好在较短的常规周期内引入新版本的Java。

目前,关于新的“时髦” JVM语言(如Groovy,Clojure和Kotlin)有很多炒作。 为什么? 在我看来,这是因为Java的开发在最近几年停滞了一段时间。 计划的半年发布周期提供了再次加快Java开发,简化和现代化Java的机会。

但是,新版本编号方案并没有完全说服我。 对我来说,“ 18.3”,“ 18.9”,“ 19.3”等听起来像“小而微不足道”。 它还具有被版本混淆的风险。 作为在不同项目之间切换的顾问,我必须在很短的时间内处理所有这些不同的版本:18.3、18.9、19.3、19.9、20.3。 这个专案目前使用哪个Java版本? 有什么区别? 该项目支持哪些功能? 哪一个不是 那么所有不同的框架和库呢? 他们还会切换到半年发布周期吗?

最后,我预见到这样的风险,即大公司不会接受如此频繁的变更。 大型组织尤其不愿花钱进行软件更新。 Oracle可能已经通过提议的长期支持版本(LTS)迎合了这一需求,因此大型企业很可能会完全跳过短期版本,而每3年坚持使用一次LTS版本。 太伤心!

还请参见: “ JDK 9对开发人员没有太大的功能,它与通过模块化更改运行时有关”

这意味着什么,用户为什么要走专有路线?

Marcus Biel: 从JDK 9开始,Oracle现在已根据GPL许可将JDK作为OpenJDK构建发布。 您可以从 此处 直接下载它, 而无需接受许可证。 到目前为止,如果您下载了包含Oracle JDK的Docker映像,则可能无意中违反了Oracle许可协议。 通过Oracle免费提供OpenJDK,现在事情变得更加容易了! 包括Oracle在内,整个Java社区都将从这一步骤中受益,因为我相信这还将进一步促进Java的传播! 作为Java开发人员,我对此感到非常高兴!

当前,OpenJDK和Oracle JDK之间仍然存在一些细微差别。 例如,Oracle JDK提供了其他工具,例如Flight Recorder和Mission Control。 但是,Oracle计划在 2018年底 之前消除 OpenJDK和Oracle JDK之间的 任何差异 。OpenJDK将成为事实上的标准 。 OpenJDK仍将与OpenJDK并存,Oracle承诺将继续为其提供客户支持。 此外,Oracle仍将单独提供商业功能,例如高级管理控制台。

当前,OpenJDK和Oracle JDK之间仍然存在一些细微差别。

JAXenter:Java 9对开发人员是否像Java 8一样有趣?

Marcus Biel: Java 8最重要的功能无疑是Lambda和Streams。 他们改变了我们编写代码的方式。 它们既是非常强大的工具,又非常危险,因为它们可用于编写很难理解和维护的代码。

拼图是Java 9的最重要功能。首先,它将对我们所有人意味着很多维护工作。 但是,作为一名“清洁代码传播者”,我看到了Jigsaw在创建更易于维护,可重用,结构良好的代码方面的巨大潜力。

尽管如此,我怀疑Java 9对开发人员是否会像Java 8一样吸引人。Lambda和Streams为我们提供了更大的功能-如果您愿意,可以使用更大的引擎进行Java软件开发。 直言不讳,拼图终于给了我们,这是急需的Java安全带。 新的,有光泽,功能强大的引擎“酷而性感”,而新的安全带…… 不幸的 是,还不是那么多 !

谢谢!

翻译自: https://jaxenter.com/java-9-interview-marcus-biel-137836.html

java 拼图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值