Oracle 禁止將 AI 生成的程式碼貢獻至 OpenJDK

Oracle 禁止將 AI 生成的程式碼貢獻至 OpenJDK

Oracle 已禁止向 OpenJDK 項目提交 AI 生成的程式碼,理由是對安全、穩定性以及智慧財產權(IP)風險的擔憂。雖然開發者仍可私下使用大型語言模型(LLMs)進行除錯和程式碼審查,但任何提交至程式碼庫、拉取請求或其他專案渠道的內容,都必須由人類撰寫。

此政策與 Oracle 內部的運作方式形成鮮明對比。共同創辦人 Larry Ellison 最近表示,AI 模型現在已負責撰寫 Oracle 的內部程式碼,共同執行長 Mike Sicilia 則歸功於 AI 工具提升了小型工程團隊的開發速度。這種差異顯示出在軟體開發中對 AI 採用採取了「對你適用,但對我不適用」的態度。

智慧財產權與法律風險

此禁令的主要動機在於降低法律與著作權責任。由於目前 AI 生成內容在著作權可保護性方面面臨挑戰,Oracle 無法確保程式碼的來源,也難以維持其對 Java 生態系統所需的嚴格授權控制。

業界觀察者與社群成員指出幾個關鍵的法律考量:

  • 著作權可保護性: 目前普遍的法律觀點認為,AI 生成的程式碼可能不具著作權,意味著無法正式授權給 Oracle 或專案,可能直接進入公有領域。
  • 訴訟策略: 透過拒絕接受 AI 生成的貢獻,Oracle 避免設立先例,以免削弱其對其他實體「以 AI 包裝」專有程式碼時提起訴訟的能力。
  • 賠償保障: 雖然企業內部使用 AI 通常伴隨供應商提供的賠償保障,但外部社群貢獻缺乏這些保護,使專案面臨第三方智慧財產權主張的風險。

審查負擔與程式碼品質

除了法律考量,Oracle 也指出「人類審查者原本就有限的時間」是關鍵因素。生成式 AI 的興起導致貢獻數量增加,往往伴隨「粗糙的程式碼」——看似正確,卻缺乏深層架構考量,或隱藏微妙的錯誤。

關鍵的技術問題包括:

  • 驗證負擔: 審查者必須花費更多時間確認 AI 生成的程式碼不會引入回歸問題或安全漏洞。
  • 維護責任: 在像 Java 這樣成熟的產品中,程式碼被視為一種負債。引入不穩定因素的風險,遠高於 AI 貢獻可能帶來的開發速度提升。
  • 檢測困難: Oracle 自己的常見問題解答(FAQ)也承認,可靠地區分 AI 生成與人類撰寫的程式碼幾乎不可能,因此此政策在很大程度上依賴貢獻者的誠實。

與其他生態系統的比較

OpenJDK 的政策並非孤例。其他主要語言專案也正在採用類似的防護措施,以維持程式碼的完整性:

  • Rust: 近期宣布了關於 AI 生成程式碼的指導原則,以確保品質與來源可追溯性。
  • .NET/Microsoft: 相較之下,微軟在 .NET 中更積極整合 AI,並推動以 Copilot 為核心的開發模式,展現出與 AI 結合的另一種哲學路徑。

社群觀點

社群對此禁令的反應不一,聚焦於 Oracle 內部使用 AI 與外部限制之間的諷刺性。

"Oracle 是一家附帶科技業務的律師事務所,可能希望保留對他人『以 AI 包裝』專有程式碼提起訴訟的選項,但如果他們公開接受 AI 貢獻,且對其來源毫無顧慮,這就無法成立了。"

其他貢獻者則認為,這是一項成熟專案自然的演進,已度過『快速前進、打破一切』的時代,如今穩定性與法律確定性才是首要目標。

Sources

相關