CodeOne主题演讲:Java,未来已来
source link: http://www.infoq.com/cn/news/2018/11/codeone-java-keynote?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
在上一次JavaOne大会之后,首届Oracle CodeOne大会最近于美国旧金山举行。周一晚上主旨演讲的头条是“Java:未来已来(The Future of Java Is Today)”,其中包括:新的每半年发布一次的Java/JDK的发布节奏正按计划进行;Oracle和许多其他组织将继续支持Java并为之做出贡献;有几个新的OpenJDK项目在探索提高生产力的语言功能,比如,原始字符串字面量(raw String literals)、纤程(fiber)和Continuation、外部函数和数据接口。
在Java平台团队软件开发副总裁Georges Saab简短的欢迎致辞后,第一个上台演讲的是GitHub的现场维护和支持服务(Field Services)副总裁Matthew McCullough。他强调了Java平台的开源参考实现OpenJDK的重要性,并讨论了“ Skara项目 ”,该项目是官方OpenJDK上游Mercurial存储库基于GitHub原型的镜像。
Skara项目旨在研究用于JDK源代码的源码管理和代码审查的备选项。McCullough还谈到,大多数“有重大影响力的软件”都是全球协作开发的,并鼓励观众参与开源软件项目。为更好地说明这一目标,他还简单演示了几个GitHub的新功能。
值得一提的是,Skara项目还处在早期阶段,目前是独立的,但和社区驱动的AdoptOpenJDK项目松散地保持一致。AdoptOpenJDK项目也是上游OpenJDK存储库的镜像,并提供所有最新的和未来的JDK版本的构建,目标是为Java(包括最近发布的Java 11)的长期支持(Long Term Support,简称LTS)版本提供四年的构建和最好的社区支持。为AdoptOpenJDK项目提供商业支持的有IBM、Azul Systems,LJC、微软、Ocado Technology和Packet。
Saab重回台上后,讨论了“保留Java优点”的相关话题。Java将继续免费和开源,社区致力于提供平台的完整性,并投资于开发人员生产力和兼容性。在质量和安全上也持续地进行投入,并保持开放和透明的发展。
讲到Oracle的贡献时,Saab展示了最近开源的几个之前是商业Java平台的功能:在Java 10中有应用类数据共享(Application Class Data Sharing,简称ACDS);在Java 11中有 ZGC项目 (用于几千兆堆的低延迟GC)、 飞行记录器 和 任务控制 (用于诊断和监控)。
新的每半年一次的发布计划已经成功交付,它为Java平台提供逐步改进,并使开发人员能够更快地访问到新功能,“不再有破坏性的主要版本”(如果计划的功能错过了发布截止日期,那么就放到下一次的发布)。Saab简单提了提新的LTS版本和Oracle支持模式,关于这些,在社区内目前存在很多困惑(InfoQ最近报道了与该主题相关的“Java还是免费的”Java Champion声明)。
该主旨演讲部分的结尾,是向OpenJDK社区中很多贡献者的致谢感言,同时也提到了几个Oracle资助的Java社区支持项目,包括 Java Magazine 、 Java User Groups 、 Java Champions 、 jDuchess项目 、 Oracle Academy Student Outreach 以及 Java Community Process(简称JCP) 。
接下来演讲的是Oracle的Java平台团队首席架构师Mark Reinhold。演讲一开始,他先提醒听众,迁移到新的Java模块系统(JEP 261)是个非常大的挑战,因为需要重写大量内部组件。但是,自从Java 9中发布该功能以来,应用效果一直不错,并且开始实现了收益。Reinhold鼓励每个Java开发人员都看看这个新功能,并给大家推荐了几本入门书。
新的模块化架构改进了平台发布节奏,并回应了Saab早先的评论,Reinhold提到了Java 10和Java 11成功地按时交付,也提到了LTS发布会带来的影响(主要是跟Oracle提供的商业支持有关,尽管其他供应商和AdoptOpenJDK计划也提供替代的构建和社区驱动以及商业支持模块)。
该部分主旨演讲的核心信息是“Java仍然免费”,OracleJDK和OpenJDK构建非常类似(尤其是首个每半年一次的LTS发布,尽管构建可能在此日期后会出现分歧,这取决于会发布什么安全性和错误补丁到上游OpenJDK存储库)。Reinhold提到了“关于新发布模型的五大误解”,其中包括错误地认为,非LTS发布是实验性的,如果维护的是不经常迁移的系统,那么可以忽略非LTS的发布。
他还讨论了用最新的Java版本测试开源项目的社区工作,提到了两个推特标签:#WorksFineOnJDK9和#WorksLikeHeavenOnJDK11。强烈建议所有在使用Java 9或更高版本的开发人员升级到最新的版本,包括所有在使用的工具和依赖项。
接着,Reinhold换了一个话题,开始展望未来。目前,Java 12 / JDK 12有4个与之相关的JEP(到目前为止),包括(启用命令行标志)新 switch 表达式的预览和 原始字符串字面量 ,以及“一个AArch64端口,而非两个”和默认的CDS存档。“面对编程范例、应用领域、部署风格和硬件的不断发展”,几个未来功能的重点放在了开发人员的生产力和程序性能上。
该主旨演讲的最后部分重点介绍了4个OpenJDK的新项目。
- Amber :“调整语言仪式的大小”,包括局部变量类型推断、无需转义排序的原始字符串字面量。
- Loom :“Continuations和纤程”,包括删除旧的“无意义”或与线程有关的不良API方法,添加纤程,即“由Java虚拟机管理的轻量级高效线程、让开发人员能够使用同样简单的抽象,但具有更好的性能和占用更小的空间”。
- Panama :非Java外部函数和数据接口,包括从JVM(C、C++)调用本机函数和从JVM或JVM堆访问本机数据
- Valhalla :Value 类型和专用的泛型。
Reinhold展示了一系列实时编码演示,用的是最新(未发布)Java 12 build,其中的示例可以从以上链接的各个项目网站上找到。
社区对该Java主题演讲的反应总体上是积极的,Paul Bakker表示“CodeOne!上的主旨演讲很棒,Java生态系统看起来比以往更好。”Chris Hegerty评论道:“CodeOne!上的主旨演讲很棒,尤其是Mark Reinhold讲解技术的那部分”。
阅读英文原文: The Future of Java is Today: CodeOne (née JavaOne) Keynote Highlights
感谢冬雨对本文的审校。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK