AI重写代码引爆开源圈:10年维护者VS消失13年的原作者
你辛辛苦苦维护了10年的开源项目,用AI重写后想换个更宽松的许可证,结果消失13年的原作者突然跳出来说:你这是违法!
最近,Python圈炸了!一个下载量超8.5亿次的经典库chardet,因为维护者用AI重写代码并更改许可证,引发了一场关于AI时代开源规则的大战!
💡 故事背景:从LGPL到MIT的"升级"
chardet这个库你可能没听过,但你的电脑里很可能有它!它是Python生态中文本编码检测的核心组件,requests库等常用工具都依赖它。
这个库有多火?单年度下载量达到8.54亿次!
- 2006年:原作者Mark Pilgrim创建,使用LGPL许可证
- 2011年:原作者彻底消失,维护工作交给其他人
- 2012年至今:Dan Blanchard成为主要维护者,贡献近700次提交
- 上周:Dan发布chardet 7.0,声称是"完全重写",并将许可证改为更宽松的MIT
⚠️ 5天AI重写:效率还是争议?
Dan Blanchard在接受采访时坦言:"Claude让我能够在大约5天内完成我想做的事情!"
他为什么要重写?
- 希望chardet能进入Python标准库
- 旧许可(LGPL)限制太多
- 性能与准确率需要提升
- 时间有限,一直无法推进
于是,他借助Claude Code重写了整个库,并声称:
- 包名和公共API保持不变
- 速度更快,准确性更高
- 支持Python 3.10+,无运行时依赖
- 可在PyPy上运行
🚨 原作者"闪现":这是非法重新授权!
就在新版本发布两天后,一个自称Mark Pilgrim的用户在GitHub上发帖:
"你好,我是Mark Pilgrim。你也许还记得我写过《Dive Into Python》以及"Universal Character Encoding Detector"。我也是chardet的最初作者。"
他明确表示:
- 感谢维护者和贡献者
- 但将7.0版本以MIT许可发布,属于对LGPL代码的非法重新授权
- 直接违反开源协议
- 要求立即将许可证恢复为原版
🔍 核心争议:这算"洁净房间"实现吗?
原作者在声明中提到一个关键概念:clean room(洁净房间)!
什么是clean room?
- 计算机工程师在不侵犯版权的前提下"模仿"软件功能的方法
- 要求:完全不接触原始代码的人重新实现功能
- 确保新代码不构成原作的衍生作品
Dan Blanchard承认:自己维护chardet超过十年,确实长期接触过原始代码库。
但他认为:
- clean-room只是手段,不是目标
- 目标在于确保代码不是原始代码的"衍生作品"
- 他用代码相似度检测工具JPlag证明:
- chardet 7.0 vs 6.0:最大相似度仅1.29%
- chardet 5.2 vs 6.0:有些文件相似度高达80%
🤖 AI如何参与重写?过程全透明
为了保持完全透明,Dan分享了具体过程:
- 使用Claude的"superpowers brainstorming"生成设计文档
- 基于一系列要求(在手机Notes里写下,未提交到仓库)
- 在完全空的仓库中开始开发,没有访问旧代码库
- 明确指示Claude:不要基于任何LGPL或GPL许可的代码
- 对生成的每一部分代码进行审查、测试和迭代
他坦言:"我没有亲手编写代码,但我深度参与了代码的设计、审查和迭代的每一个环节。"
⚖️ 争议焦点:AI生成代码的边界在哪里?
尽管力求独立,但仍存在复杂因素:
- 训练数据问题:Claude模型训练时吸收了大量公开网络数据,可能包括早期chardet的开源代码
- 元数据使用:有网友发现Claude使用了chardet早期版本的一些元数据文件
- 人为因素:让对早期代码非常熟悉的人深度参与审查,是否影响"全新性"
- 名称问题:所有操作都在同一个包名、存储库、PyPI列表下完成,名字还是叫chardet
🌟 开源社区炸锅:AI时代的规则空白
这起事件在开源社区引发广泛讨论:
支持维护者方:
- "Blanchard独自维护这个库,无资金、无协作者、无支援"
- "原作者2011年彻底清空互联网痕迹,全靠一个人用业余时间撑着"
- "这是Python生态最依赖的包之一"
反对声音:
- "把Copyleft代码喂给训练过它的模型,让模型生成功能等价产物"
- "查重工具找不到匹配token,不代表作品独立,只代表洗白有效"
- "如果这套手法合法,现存所有Copyleft项目,只要跑一次Claude就能变成MIT"
犀利点评:
- "把泄露的Windows源码丢给大模型重写,再以开源发布,能接受吗?"
- "机制完全一样,唯一变量是你是否同情版权方"
自由软件基金会(FSF)执行董事Zoë Kooyman直言:"AI模型吸收了要重新实现的代码,因此根本不存在真正"洁净"。"
💭 思考:AI时代的开源规则何去何从?
这不仅仅是chardet一个库的问题,而是AI时代开源生态面临的根本性挑战!
- AI辅助开发已成现实,但规则还在空白期
- 原作者消失多年后的项目归属权问题
- AI生成代码的版权界定模糊
- 开源许可证在AI时代的适用性
一方是经典开源协议的底线,一方是AI辅助开发的新现实,在原作者消失、单人维护十年后,项目到底归谁?
新版chardet的许可到底谁说了算?
金句:在AI重写代码的时代,我们不仅需要新的工具,更需要新的规则!
互动问题:你觉得用AI重写代码后更改许可证,合理吗?在评论区说说你的看法!
如果觉得这篇文章对你有启发,点赞支持一下