Oracle:Java9破坏了一些东西,开发者仍用Java8

简介:   编译:唐尤华 ImportNew  Java 有个问题:Java 语言和平台的开发速度比以往任何时候都要快,但许多开发人员仍旧坚持使用已经发布了五年的 Java 8。  本周在伦敦举行的 QCon 会议上,Trisha Gee,一位 JetBrains 的开发者,在发表演讲前在 Twitter 上进行了调查。78%的人表示,他们正在使用 Java 8。考虑她的粉丝大多倾向于使用最前沿的技术,实际的比例可能会更高。

  编译:唐尤华 ImportNew

  Java 有个问题:Java 语言和平台的开发速度比以往任何时候都要快,但许多开发人员仍旧坚持使用已经发布了五年的 Java 8。

  本周在伦敦举行的 QCon 会议上,Trisha Gee,一位 JetBrains 的开发者,在发表演讲前在 Twitter 上进行了调查。78%的人表示,他们正在使用 Java 8。考虑她的粉丝大多倾向于使用最前沿的技术,实际的比例可能会更高。

  译注:文章发布于2019年3月7日

  你正在使用哪个版本的 #Java ?

  — Trisha Gee (@trisha_gee) 2019-2-18

  这让人感到非常遗憾。Java 8 的后续版本中加入了许多功能强大的新特性:JLink 可以为 Docker image 创建更小的 Java 可执行文件,用 var 可以代替类型声明,JShell 为 Java 提供了交互式功能。此外还改进了 collection、optional 实现、改进了垃圾回收、引入了模块化机制等等。

  那么,为什么开发人员没有升级?一句话,Java 9 进行了重大变更,包括内部重组、新的模块化机制(Jigsaw 项目)并移除了一些很少使用的 API。这些改变破坏了代码,甚至那些愿意升级的开发者会顾虑依赖性问题。一位参会者说:“我们使用的开发库还没有支持最新 Java 版本”。

  “我想解释为什么升级是必要的”,来自 Oracle 的 Ron Pressler 说道。他是 Java 平台语言开发小组中的一员,也是 Loom 项目的负责人。

  “Java 有数十亿行代码,而 Java 9 确实破坏了一些二手东西。这是因为 Java 已经20多岁了,在接下来的20年里,它会继续大受欢迎。我们必须考虑20年后的情况。Java 9 之前的 JDK 结构是不可维护的。如果不做出这样的改变,就无法保持 Java 的竞争力。因此,改变是绝对必要的”。

  JClarity 的 CEO Martijn Verburg 表示,目前已经取得了一些进展:“在最受欢迎的1000个 Maven 库中,目前大约65%兼容了 Java 9+。6个月前,这一比例大约是42%,可能还需要一年时间才会完全兼容“。JClarity 是一家专注解决 Java 性能问题的公司。

  然而,开源项目和企业私有库的升级之路会很漫长。Java 8 现在仍然支持得很好,没有强烈的升级冲动。“未来将会出现两个世界”,一位与会者表示,“一个 Java 8 的世界,一个 Java 11+ 的世界”。

  在一个 QCon Java 座谈会上,Pressler 看起来有点沮丧:“在 Java 9+ 上无法运行代码没有特别的原因,可能只需要修改一些过时的 API 调用或者类似的工作。Java 9+ 并不是一门别的什么语言”。

  与此同时,他也承认目前每六个月给 Java 一个新版本号的做法的确给人造成了不好的印象。

  “我们做过的最让人感到困惑的事情之一,就是用整数版本编号给每六个月发布的新版本命名。从 Java 9 到 Java 10,你会认为这是 Java 一个新的主要发布版本,但事实并非如此。Java 10 并不是一个主要发布版本,而是一个小版本。最近的一个 Java 主要发布版本是 Java 9。在可预见的未来,不会再有这种情况发生了”。

  Oracle 修改了 Java 11 的授权策略——必须获得商业许可。除非你愿意跟上开源 OpenJDK 的步伐,这会不会也是一个问题?

  “Java 实际上变得更自由了”,Verburg 说道。原因在于 Oracle 已经正式支持 OpenJDK 并与 OpenJDK 提供者共享安全补丁。“但如果访问 Oracle 的网站下载 Java,你必须做出决定。是要商业版 Java、Oracle 的 OpenJDK,还是其他 OpenJDK?你不得不做出自己的选择。这就是市场中的困惑”。

  Oracle Java SE 产品经理 Donald Smith 对此表示赞同,但他补充道:“不幸的是,Register 杂志无法刊登题为‘现在 Java 比以往任何时候都更自由’的文章,人们是不会看的”。

目录
相关文章
|
10天前
|
SQL Java 数据库连接
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
21 3
|
12天前
|
安全 Java API
告别繁琐编码,拥抱Java 8新特性:Stream API与Optional类助你高效编程,成就卓越开发者!
【8月更文挑战第29天】Java 8为开发者引入了多项新特性,其中Stream API和Optional类尤其值得关注。Stream API对集合操作进行了高级抽象,支持声明式的数据处理,避免了显式循环代码的编写;而Optional类则作为非空值的容器,有效减少了空指针异常的风险。通过几个实战示例,我们展示了如何利用Stream API进行过滤与转换操作,以及如何借助Optional类安全地处理可能为null的数据,从而使代码更加简洁和健壮。
40 0
|
2天前
|
Java API 开发者
【Java字节码的掌控者】JDK 22类文件API:解锁Java深层次的奥秘,赋能开发者无限可能!
【9月更文挑战第8天】JDK 22类文件API的引入,为Java开发者们打开了一扇通往Java字节码操控新世界的大门。通过这个API,我们可以更加深入地理解Java程序的底层行为,实现更加高效、可靠和创新的Java应用。虽然目前它还处于预览版阶段,但我们已经可以预见其在未来Java开发中的重要地位。让我们共同期待Java字节码操控新篇章的到来,并积极探索类文件API带来的无限可能!
|
10天前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
15 7
|
11天前
|
Java 开发者 UED
“Java开发者必看:异步编程实战解析,掌握这些技巧,让你的代码跑得更快!
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点。异步编程作为提高应用响应速度和吞吐量的技术,在Java中广泛采用。本文详细介绍了Java异步编程的概念与优势,并通过实战示例展示了如何利用Future、Callable及CompletableFuture在实际项目中实施异步编程,帮助开发者更好地理解和应用这一技术。
26 2
|
11天前
|
Java 开发者
Java 编程风格与规范:跟上时代热点,打造高质量代码,为开发者梦想保驾护航
【8月更文挑战第30天】本文强调了Java编程中代码质量和可维护性的重要性,详细介绍了命名规范、代码格式和注释的最佳实践,如使用描述性的命名、适当的缩进及空行,以及关键代码部分的注释说明,同时还提供了避免魔法值和减少代码重复的建议与示例,帮助提升团队协作效率和项目长期发展。
31 2
|
17天前
|
Java 测试技术 开发者
掌握抽象类与接口的高级技巧!超越普通Java开发者
掌握抽象类与接口的高级技巧!超越普通Java开发者
24 2
|
25天前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。
|
22天前
|
数据采集 Oracle 关系型数据库
实时计算 Flink版产品使用问题之怎么实现从Oracle数据库读取多个表并将数据写入到Iceberg表
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
9天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
24 10

推荐镜像

更多
下一篇
DDNS