Oracle 对 OpenJDK 下了禁令,但自家 GraalVM 却允许 AI 辅助,这种双标政策让开发者看不懂。
OpenJDK 发布新政策,全面禁止提交任何 AI 生成的代码、文本或图片。该禁令适用于全部或部分 AI 生成内容,包括源代码、邮件和 PR 等。OpenJDK 作为 Java 生态的基础设施级软件,此举旨在减轻审查负担、降低安全风险并避免知识产权纠纷。
OpenJDK 全面禁止 AI 生成代码!
文章的开头,咱们先来一个小问卷调查吧。 不知道咱们这里有多少小伙伴还在做 Java 开发的? 最近 Java 圈子里出了一件事情被大家讨论得蛮多的,相信不少同学也都看到了。 那就是 Oracle 针对 OpenJDK 发布了一项极其严格的代码贡献政策,即: 禁止提交 AI 生成的代码。 消息一出,社区里吵翻了天。 有人拍手叫好,认为这是保护开源质量的底线,也有人嗤之以鼻,觉得这是逆时代潮流的老登行为。 关键更搞笑的是,Oracle 自己一边喊着用 AI,一边却又把 AI 生成的代码死死挡在 OpenJDK 项目门外。 这种割裂双标感,让许多开发者直呼看不懂。 这个禁令到底有多狠 我们先来看看这次 OpenJDK 官网上的政策原文。 OpenJDK 的这份政策,并不是可选建议,而是一份强制的硬性要求。 该政策明确规定,无论是全部还是部分,只要内容里沾了 AI 生成的边,一律都不得提交。 这里面的内容不仅包括源代码,类似像文本、图片、邮件、Wiki、PR等等,都在管控范围之内。 这还不算,官方 FAQ 里还给出了一个问题场景: 有人问,如果我用 AI 生成了 100 行代码,自己手改了 10 行,那这算合格的吗? 官方回答干脆利落: 不行。 只要提交内容里包含了 AI 生成的内容,无论全部还是部分,一律禁止。 不仅如此,类似像文本内容、图片、PR、邮件内容、Wiki 内容……,只要是用 AI 生成的,统统不行。 唯一允许的,是你私下用 AI 来学习、调试、理解现有代码,但绝不能把 AI 的生成产物提交上去。 或者再换句话来说: AI 可以当你私下学习的助手,但却不能当你提交代码的责任人。 为什么要这么做 很多人觉得 OpenJDK 疯了,放着免费的代码生产力不用。 但如果你了解 OpenJDK 的地位,可能就会考虑到或许这也算是其一种清醒的策略取舍。 OpenJDK 不是普通的开源项目,它可以说是整个 Java 开源生态的地基,也是当今互联网生态中不可或缺的基础设施级软件。 全球大量的金融系统、政务系统、企业后台等都跑在它上面。在这个级别的项目里,稳定性和合规性压倒一切。 OpenJDK 官方给出了三个禁止理由,每一个都直击要害: 第一点是:审查负担问题。 AI 写代码太容易了,一天生成几十个 PR 完全不在话下,而且这些生成物看起来语法正确、逻辑通顺。 但问题是,这些代码往往看起来 OK,但实则暗藏杀机。比如藏匿着的细微错误、边界缺陷,或者压根就没有考虑到的长期维护性问题和兼容性问题。 OpenJDK 的维护者人数有限,资源也有限。如果放任大量 AI 产物的涌入,维护者会被淹没在看似合理但难以维护的代码红海里,最终导致项目瘫痪。 第二点则是:安全风险问题。 AI 模型有幻觉这是大家都有目共睹的共识,它可能会自信满满地写出一个看似能解决 Bug,实则引入新漏洞的代码。 在普通应用里,这或许只是个线上事故,但在 JDK 这里,这可能是一个波及全球的软件安全灾难。 第三点,也是最棘手的:知识产权问题。 AI 训练数据集来自海量互联网数据,生成的代码存在无意复制他人代码的风险。 而目前大家对于 AI 产出物版权归属的问题还没有一个明确定论。 一旦 AI 无意中缝合了带有版权隐患的代码合入 OpenJDK,那未来可能面临的就是巨大的法律风险和版权纠纷。 这对于 Oracle 等这种在知识产权上极其敏感的公司来说,这是绝对不能触碰的红线。 尴尬的反差 对于 Oracle 而言,你要说你旗下各个开源项目你都禁 AI 的话,大家其实也没啥疑惑。 但问题是,人家 Oracle 偏偏不这样。 这是因为其旗下另外一个知名开源项目 GraalVM 在 AI 工具辅助这件事情上则采取了完全相反的政策态度。 GraalVM 项目政策里明确允许 AI 辅助贡献,不过这里有一个前提: 代码提交者必须对内容负全责 。 而作为代码贡献者,你必须能能解释和维护你所提交的代码,如果做不到,该代码可能会被拒绝。 而在代码署名这一块,项目鼓励贡献者主动披露 AI 大模型参与情况, 但不作强制要求 。 其实在知识产权确认这方面,虽然两个项目都要求贡献者签署 OCA,但 OpenJDK 项目聚焦的是知识产权风险,而 GraalVM 项目则聚焦的是贡献者责任,出发点不一样,责任视角不一样,所反映出来的政策要求也完全不一样。 写在最后 众所周知,最近这两年 AI Coding 持续爆火,网上也时不时有程序员即将被 AI 替代的各种观点冒出。 但 OpenJDK 用一纸政策告诉了我们: AI 可以帮你写代码,但却不能替你担责 。 看到没,涉及到背锅问题的时候,AI 也不好使了吧。 细想一下,OpenJDK 的禁令,其实不是反 AI,而是反 不负责任的 AI 产物 。 AI 时代,虽说代码的生成成本趋近于零,但代码的出处、权属与责任问题,却并没有清晰的界限定论。 所以在把 AI 拉进你的实际生产协作流程之前,你还得先想清楚一个问题: 这段代码,到底谁能为它负责? 注:本文在GitHub开源仓库「编程之路」 github.com/rd2coding/R… 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。