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将成为事实上的标准
当前,OpenJDK和Oracle JDK之间仍然存在一些细微差别。
JAXenter:Java 9对开发人员是否像Java 8一样有趣?
Marcus Biel: Java 8最重要的功能无疑是Lambda和Streams。 他们改变了我们编写代码的方式。 它们既是非常强大的工具,又非常危险,因为它们可用于编写很难理解和维护的代码。
拼图是Java 9的最重要功能。首先,它将对我们所有人意味着很多维护工作。 但是,作为一名“清洁代码传播者”,我看到了Jigsaw在创建更易于维护,可重用,结构良好的代码方面的巨大潜力。
不幸的
谢谢!
翻译自: https://jaxenter.com/java-9-interview-marcus-biel-137836.html
java 拼图