(给ImportNew加星标,提高Java技能)
编译:ImportNew/唐尤华
blog.picnic.nl/codeone-2019-the-state-of-java-56ff69b9ef5d
在Picnic,大多数后端系统采用Java构建。为什么选择Java?它是行业中久经考验的主力产品,性能出色和扩展性高。Java应用广泛,其生态系统提供了丰富的开发库,加速常规任务与特殊功能开发。
尽管已经有20多年的历史,Java语言仍在不断发展。每年,Java的管理者Oracle都会组织一次会议,召集来自世界各地的Java开发人员。上周,我出席了CodeOne(以前称作JavaOne)会议。下面是我整理的Java社区最近进展。
CodeOne主题演讲中Java路线图更新
Java 9于2017年9月发布,距Java 8发布已经三年多了。现如今,发布一次等上三到四年已经不行了。为此,OpenJDK的发布时间表改成了半年一次,每年3月和9月发布Java新版本。当然,这种改变在业界激起了波澜。按照这种频率发布四个版本后,现在可以放心地得出结论,这种新的发布方式确实有效。就在CodeOne会议期间,发布了Java 13。我做了一个题为“Coding Your Way to Java 13”的演讲,帮助大家快速掌握Java 8以来Java平台发生的各种变化。
在CodeOne 2019的Coding Your Way to Java 13演讲之前,会议室人满为患。
发布Java新版本是一回事,使用它们是另一回事。公司和开发者都需要时间来适应新的发布模式,这一点也不奇怪。在Picnic,我们已经用Java 11工作了一段时间,这意味着可以享用许多新的功能和改进。
伴随着Java交付频率提高,看到即将到来的新版本功能列表逐渐完善让人非常开心。在CodeOne主题演讲中,Brian Goetz(Java语言架构师)分享了许多即将发布的新特性。Records是对Java语言的补充,这个特性受到广泛好评。Java终于提供了一种定义纯数据持有人的简洁方式。创建的record是一个不可变数据对象,自动实现equals/hashCode。可以参考这个JEP得到更多详细信息。结合即将推出的其他功能,例如pattern matching和destructuring,Java语言在接下来的每个发行版中都变得更加高效。期待明年Java版本中能够包含这些新功能!
一些项目正在进行较大的更改,例如Loom项目(加入了continuations和fibers),Valhalla项目(加入了value type和specialized generics)。但是这些功能需要更长的时间,预计可能在明年交付。
Oracle Labs的GraalVM是另一个关注的焦点。虽然Graal项目的开发包含了几个部分,但最有趣的一项是从Java字节码生成本机预编译好的二进制。使用这种方法时,可以大大缩短启动时间,减少内存使用。虽然这项技术也有自身局限,但在CodeOne上用Micronaut和Quarkus进行的几个演示,启动时间仅为几毫秒。对于尚未使用GraalVM的用户,过去的几个发行版中,OpenJDK的启动时间也一直在稳步缩短。
GraalVM的另一个目标是成为多语言平台,架构基于Truffle API,能够在同一个虚拟机上支持多种语言。例如,在Oracle的数据库产品中已经被用来执行JavaScript和R函数。不仅如此,通过它甚至可以创建自己的DSL,这些DSL可以在Graal上高效运行。
令人鼓舞的是,整个Java生态系统中有那么多不同的发展计划。经过20多年的持续发展,行业主力军仍然活跃。2020年还会加入许多重要的功能,对于Java来说将是崭新的一年!
推荐阅读
(点击标题可跳转阅读)
看完本文有收获?请转发分享给更多人
关注「ImportNew」,提升Java技能
好文章,我在看❤️