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


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

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

    你正在使用哪个版本的 #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 比以往任何时候都更自由’的文章,人们是不会看的”。

  • 相关阅读:
    c#中判断对象为空的几种方式(字符串等)
    log4net示例3控制台、windows事件
    c#中如何截取Windows消息来触发自定义事件
    向ArcGIS的ToolBarControl中添加任意的windows组建的方法
    log4net示例1最简单的回滚文件记录日志程序(时间)
    Qt 定时器实现循环
    把 MPP Sample 编译成动态库
    Linux Shell 常用编程语法
    VSCode 调试
    Hisi 使用GDB调试(直接调试)
  • 原文地址:https://www.cnblogs.com/CQqf/p/10794601.html
Copyright © 2020-2023  润新知