AI 寫的程式碼不行嗎?Java 的心臟 OpenJDK 為何祭出『AI 禁令』

OpenJDK 標誌與人工智慧圖形形成對比,象徵開源專案 AI 政策的變化
AI Summary

OpenJDK 社群基於程式碼穩定性與著作權考量,導入了暫時禁止 AI 生成程式碼貢獻的政策。

想像一下。假設你是一位建造巨型橋樑的工程師。但在設計橋樑時,如果直接採用不經人手、由「AI」自動計算出來的數據,會是什麼樣的情況?雖然計算速度很快,但你恐怕會感到不安:AI 為何導出這些數據?是否存在肉眼看不見的結構性缺陷?

近期,Java 語言的核心專案 OpenJDK 社群公佈了一項包含類似考量的政策。這是一項被稱為「禁止 AI 生成程式碼貢獻」的政策,要求不得將 AI 撰寫的程式碼帶入專案中。究竟為何做出這項決定?這與我們的日常生活有何關聯?讓我們一起來探討。

這為什麼很重要?

Java 是全球無數金融系統、企業級軟體與雲端基礎設施的骨幹。我們早上起床確認銀行餘額、整理會議資料時所使用的許多系統,都是基於 Java 運作。

如果這些核心基礎(OpenJDK)中混入了未經驗證的 AI 程式碼,會發生什麼事?這可能不只是簡單的錯誤,更會引發數據洩漏或系統癱瘓等嚴重的安全事故。這項政策並非單純表示「討厭 AI」,而是為了守護基礎設施的信任度(Trustworthiness,即相信系統能如預期般安全運作)所採取的措施 Source 10。開發者將 AI 作為便利工具活用固然是好事,但對於我們每天使用的基礎設施,決意維持由人類親自負責到底的架構。

AD

簡單理解:程式碼的「出處」問題

簡單來說,這項政策與「原產地標示制度」類似。

比喻來說,AI 撰寫程式碼的方式,就像是一位閱讀過無數書籍並將內容混合、產生新句子的「聰明摘要機器人」。但問題在於,這個機器人在產生句子時,往往無法完美說明資訊來源。

  1. 智慧財產權的模糊性:有人利用 AI 製作了程式碼,結果發現該程式碼侵犯了他人的著作權該怎麼辦?OpenJDK 是全球使用的開源專案,無法承擔這種法律糾紛的風險 Source 10
  2. 審查者的痛苦:過去,審查人員查看人類撰寫的程式碼並指出「這裡是問題」,但 AI 瞬間產出的數萬行程式碼,對於人類而言審查負擔過於巨大 Source 8, Source 10
  3. 安全性與穩健性:AI 有時會寫出「看起來正確但卻錯誤」的程式碼。如果 AI 程式碼中隱藏了針對系統微小縫隙的漏洞,要將其找出比大海撈針還困難 Source 5, Source 10

比喻來說,AI 就像是幫你寫作業的「天才學弟」。學弟寫的報告太過優秀,於是你原封不動地交給老師,結果發現內容全是來源不明的拼湊,或是在核心數據上有誤,這時該負責任的人依然是你。OpenJDK 目前決定不直接接收那位學弟的報告。

現況:「個人用」vs「專案用」

那麼,開發者在撰寫程式碼時是否就不能使用 AI 了呢?幸好並非如此。

OpenJDK 社群「允許個人使用 AI」。開發者為了提高自身生產力而向 AI 提問、獲取靈感,並以此為基礎「由人類親自」撰寫程式碼並提交,是完全沒有問題的 Source 6。只是嚴格禁止將 AI 直接生成的產出物原封不動地複製並貢獻給 OpenJDK 專案 Source 5, Source 6

有趣的是,同樣是由 Oracle 支援的專案,像 GraalVM 等其他專案卻允許 AI 生成程式碼的貢獻 Source 3, Source 11。這展示了根據專案性質的不同,對 AI 的看法也會有所差異,是一個非常有趣的案例 Source 10, Source 12

未來將如何發展?

這次措施是 2026 年 4 月所發表的「臨時政策(Interim Policy)」Source 1, Source 8。換言之,OpenJDK 計劃更密切地觀察 AI 將為軟體生態系統帶來的機會與風險,並在長期內制定完善的政策 Source 8

我們今後將會在更多開源專案中看到類似的考量。這是因為核心基礎設施專案越是傾向於將「安全」與「責任」優先於「速度」。讀者們今後在新聞中,常會看到「AI 協助寫程式」這類華麗訊息的背後,附帶上「但是,誰要負責?」這種質疑。這證明了我們的責任感也正隨著技術的發展一同進化。

MindTickleBytes 的 AI 記者觀點

技術越進步,「人類的判斷」就越顯珍貴。即便未來 AI 可能寫出所有程式碼,但該程式碼是否安全到足以支撐公共系統,其最終批准的角色永遠都會留給人類。此次 OpenJDK 的決定,將成為警惕技術工具化、守護系統信任的重要里程碑。

參考資料

  1. OpenJDK Interim Policy on Generative AI
  2. OpenJDK Interim Policy on Generative AI - announce - openjdk.org
  3. Oracle’s OpenJDK Bans Generative AI Contributions While Oracle’s GraalVM Allows Them - InfoQ
  4. What’s coming in JDK 27… and why OpenJDK just said no to your Copilot - JVM Weekly vol. 171
  5. Agentic AI Workflows for OpenJDK Development
  6. OpenJDK Legal Documents
  7. April 2026 - announce - openjdk.org
  8. OpenJDK Interim Policy on Generative AI Usage - LinkedIn
  9. Oracle’s OpenJDK Bans Generative AI Contributions While…
  10. Oracle’s OpenJDK Bans Generative AI Contributions While …
  11. Oracle’s OpenJDK Bans Generative AI Contributions While …
AD
測試你的理解
Q1. 下列何者並非 OpenJDK 禁止 AI 生成程式碼貢獻的主要原因?
  • 程式碼穩定性與安全性疑慮
  • 智慧財產權所有權問題
  • AI 工具的訂閱費用太昂貴
主要原因是程式碼的安全性、著作權以及審查者的負擔,訂閱費用並未被提及。
Q2. 想要為 OpenJDK 做出貢獻的開發者完全不能使用 AI 工具嗎?
  • 是的,撰寫程式碼時完全不能使用 AI。
  • 不是,在不提交至專案的個人作業中可以使用。
  • 只要提交給專案的程式碼使用 AI 即可。
允許將 AI 工具用於協助個人作業,但禁止將其產出物直接貢獻給 OpenJDK。
Q3. 由 Oracle 支援的 GraalVM 專案與 OpenJDK 是否採用相同的政策?
  • 是的,完全相同。
  • 不是,GraalVM 採取了允許 AI 生成程式碼貢獻的相反政策。
  • 沒有制定政策。
與 OpenJDK 相反,GraalVM 採取了允許 AI 生成程式碼貢獻的政策。