JDK/Java 15 刚刚发布!Java 新增国家/地区使用限制条款引发争议,网友:不让我们用了?

开发者技术前线 2020-09-17 13:45

点击“开发者技术前线”,选择“星标🔝”

在看|星标|留言,  真爱



来自:开源中国

JDK/Java 15 已经发布。

根据发布规划,这是一个短期版本,只会受到 Oracle 6 个月的支持,直到明年 3 月 JDK 16 发布。受到 8 年长期支持的 LTS 每 3 年发布一个,上一次是 18 年 9 月的 JDK 11,下一次则是 JDK 17,将于明年发布。

JDK/Java 15 的亮点包括加密签名、文本块、隐藏类、外部存储器访问 API、 ZGC、模式匹配和 Records 等。

339: Edwards-Curve Digital Signature Algorithm (EdDSA)

使用 Edwards-Curve 数字签名算法(EdDSA)实现加密签名。与其它签名方案相比,EdDSA 具有更高的安全性和性能,并且已在许多其它加密库(如 OpenSSL 和 BoringSSL)中得到支持。

360: Sealed Classes (Preview)

用于限制超类的使用,密封的类和接口限制其它可能继承或实现它们的其它类或接口。

384:Records (Second Preview)

Records 提供了一种紧凑的语法来声明类,以帮助开发者写出更简洁的代码,这些类是浅层不可变数据(shallowly immutable data)的透明拥有者。该特性主要用在特定领域的类,这些类主要用于保存数据,不提供领域行为。目前处于第 2 个预览版本阶段。

373: Reimplement the Legacy DatagramSocket API

重新实现旧版 DatagramSocket API,用易于维护和调试的更简单、更现代的实现来代替java.net.DatagramSocketjava.net.MulticastSocketAPI 的基础实现。

379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)

Shenandoah 垃圾回收从实验特性变为产品特性。这是一个从 JDK 12 引入的回收算法,该算法通过与正在运行的 Java 线程同时进行疏散工作来减少 GC 暂停时间。Shenandoah 的暂停时间与堆大小无关,无论堆栈是 200 MB 还是 200 GB,都具有相同的一致暂停时间。

其中有一些特性已经在 Java 14 中有所体现,详情可以查看:JDK/Java 14 发布

完整的更新信息可以查看:

https://openjdk.java.net/projects/jdk/15


Java国家/地区使用限制条款引发争议






JDK/Java 15 发布,在 RI 包里有开发者发现其标注了一则国际使用限制条款

由于某些国家/地区的知识产权保护和执法有限,因此 JDK 源代码只能分发到授权的国家/地区列表中。如果要从不在此列表中的国家/地区进行下载,则将无法访问源代码。我们正在不断审查此列表,以添加其他国家/地区。

有开发者和知识产权专家指出,此条款意味着如果 JDK/Java(Oracle)认为有国家不能很好地进行知识产权保护,那么便可以限制其使用。

有人对此提出疑问:OpenJDK 根据 GPL 开源协议进行分发,这种限制类型的条款是否有悖 GPL 协议?

实际上,JDK/Java 15 使用的开源协议是 GPL v2,该版本下有一条与 JDK/Java 15 的国际使用限制条款类似:

8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

卫Sir译:如果在某些国家因为专利或版权的问题难以分发,那么版权所有人在分发时,可以对分发的地区加以明确限制,以排除那些国家。在这种情况下,这些限制不认为是对本协议的修改。(译者注:算一种例外吧。)


所以理论上 JDK/Java 15 中这样做并没有违反 GPL v2 协议。而在 GNU 发布的最新 GPL v3 许可证中,已经没有了类似的国家和地区限制条款。

但也有业内人士指出,作为 OpenJDK 项目的实际管理者,Oracle 是否有足够依据和健全的评估体系,去判断国家/地区的专利或版权相关法规是否健全,并以此为理由对整个国家/地区做出限制呢?

值得一提的是,OpenJDK 中的这个国家限制条款并不是新增的,早在 6 年前就已经有开发者提出了质疑。这名开发者把该条款发在 GNU 论坛上,GNU 的管理者在当时还询问了 RMS 等权威。

GNU 咨询委员会成员 Jason Self 引用 FSF 章程中对自由软件的定义对此进行了答复:在国际上,有时政府的出口管制条例和贸易制裁会限制人们分发自由软件,软件开发者没有权力消除或推翻这些限制,但他们可以和必须做什么?就是拒绝将它们加入自由软件的的使用限制条款。这样一来,在这些政府的管辖范围之外,这些限制就不会对使用自由软件产生什么影响。“仅提及出口法规的存在,而不是将限制作为许可证本身的条件,是可以接受的,因为它不会直接限制到用户。”

在今天国际环境日趋严峻的情况下,这个话题相比 6 年前初次被提及,似乎得到了更多关注,当年这一问题没有被很好地讨论,如今重新被提出来,希望这一次能够引起足够的重视。也希望更多专业人士出来积极探讨。

以 6 年前那一帖子里 Jason Self 的一句话作为结语:

If an export regulation is actually trivial for free software, then requiring it as a condition is not an actual problem; however, it is a potential problem, since a later change in export law could make the requirement nontrivial and thus render the software nonfree.

如果出口管制对于自由软件的影响微不足道,那么限制条款或许不是什么问题,但是,潜在问题是,后续如果出口管制法律变更使得整体要求变得严苛,那么会使软件不自由。





END


前线推出学习交流群,加群一定要备注:


研究/工作方向+地点+学校/公司+昵称(如Java+上海+上交+可可)
根据格式备注,可更快被通过且邀请进群,领取一份专属学习礼包
扫码加我微信进群

大厂内推和技术交流,和前辈大佬们零距离


点个在看吧
推荐阅读