在软件项目中直接引入AI生成的代码可能引发哪些后果?
或许在程序崩溃或bug显现之前,仅仅这一行为就足以掀起一场风波——这正是开源社区GZDoom近期遭遇的困境。近日,该社区创始人将AI生成的代码直接合并到项目中,导致社区反应激烈:许多老贡献者愤然离开,并创建了新分支以表达不满。
当然,社区成员愤怒的原因不仅是创始人的行为,更有贡献者透露,创始人在引入AI代码时未进行任何测试,且日常管理风格“独裁”,将本可众人贡献的开源项目变成了个人决策的“私有项目”。
对于许多资深Doom爱好者来说,GZDoom这个名字并不陌生。
1997年12月,《Doom》游戏引擎源代码公开后,行业中涌现了许多衍生项目,其中最知名的是次年由开发者Randy Heit推出的ZDoom项目。
ZDoom并非重制Doom,而是让这款老游戏更现代化、更具趣味性。它加入了众多在当时看来前沿的功能,例如支持高分辨率和自由鼠标视角;引入新的脚本系统(DECORATE),使玩家能轻松创建新武器、敌人和特效;支持mod制作复杂关卡逻辑;兼容Doom、Heretic、Hexen等多款同引擎游戏。
随后几年,ZDoom出现了许多衍生版本,但GZDoom是最突出的之一。
它由另一位开发者Christoph Oelckers(网名Graf Zahl)于2005年创建。这里的“G”代表“GL”,意味着它加入了OpenGL硬件加速渲染。这一步至关重要,因为原版ZDoom仅支持软件渲染(画面类似老游戏机的像素风格),而GZDoom能提供动态光照、阴影、粒子特效、3D模型支持等现代图形效果。
随着时间的推移,GZDoom逐渐成为Doom模组开发的主流平台。许多知名Doom现代化项目(如Brutal Doom、Project Brutality、Ashes 2063等)都基于GZDoom构建。
然而,如今GZDoom社区正面临分裂。
部分开发者联合起来,创建了一个新的分支项目——UZDoom。这一举动显然是为了抗议GZDoom创始人兼维护者Christoph Oelckers的领导方式及其对AI代码的处理。
或许有人会问,代码是否由AI编写难以判断,为何会引起如此强烈的反应?
事实是,Graf Zahl在修改代码时留下了一条注释:
“This is what ChatGPT told me for detecting dark mode on Linux.”
(这段代码是ChatGPT教我如何检测Linux深色模式的。)
正是这条注释引发了社区讨论。
开发者the-phinet指出:“这段代码未经测试,甚至无法编译,且来源可能涉及版权问题,无法确认是否符合GPL开源协议。”
对此,Graf Zahl回应称,代码通过了CI,肯定可以编译,否则他会禁用,并对AI使用不以为然:“现在每个人都在用AI写样板代码,像你这样无理取闹的人只会吃亏和被嘲笑。至于你们对AI的反感——说实话,谁在乎!我当然对在项目核心代码中使用AI有所保留,但这只是对系统配置的表面检查,这些内容在网上随处可见——AI只是让工作量减少了十倍而已。”
在这种情况下,关于在项目中引入AI生成代码的争议就此展开。
the-phinet直接反驳:“你觉得有必要对我撒谎,这既可笑又幼稚。”同时,他还展示了失败的运行记录:
对于这一说法,Graf Zahl解释:
“是的,第一个提交失败了。但这重要吗?修复紧随其后。
直接推送到master分支是个意外——我本想先推到测试分支,让CI进行测试编译,但提交前未切换分支,我犯了错误。
别告诉我你从不犯错。”
Graf Zahl的这种态度引发了更多贡献者的不满,随后另一名贡献者Cacodemon345也加入争论,严肃表示:
“我绝不会使用AI生成的糟糕代码,即使是样板代码,也不会用,即使部分用于AI辅助纠正我的代码。我在其他项目处理过AI辅助的PR,体验极差,浪费时间去处理各种bug报告。如果ChatGPT或其他生成式AI/聊天机器人生成的糟糕代码真是项目的未来,很抱歉,我退出。”
没想到,Graf Zahl不想听此类言论,只是删除了AI生成的代码,将相关函数从仓库移除。
同时,他并不想放弃使用AI,表示:“别以为这解决了AI问题。我认识许多依赖AI工具的开发者,他们已经离不开AI。而且大多数人不会承认,很难区分这些代码——它们不总是明显的糟糕代码。例如,如果我说代码来自我的老项目,没人会怀疑。可惜那个项目的检查功能仅针对Windows和Mac版本……:(”
他还补充:
“哦,相信我,我对将AI作为编程助手也非常谨慎。我见过它输出的垃圾代码,大多时候我试图用ChatGPT节省时间,结果都不满意。
我发现它唯一有用的地方,可能是像这种检查——系统配置查询,这类内容在普通网络搜索中很难找到。即使是标准算法,生成结果也不总是可靠。
至于法律风险,不,抱歉,这不会发生。没人敢轻易得罪大科技公司。
我完全预计AI金融泡沫在未来两年内破裂,但总体看,这工具太有用,不可能完全放弃。它会继续存在,但会沿更合理方向重新定位。
也许在编程上不特别适用——但图像生成、自动文本翻译、自动文本摘要等呢?这些更‘可丢弃’的内容,本身不需长期存在。
很可能,你已比意识到的更频繁使用AI,只是没注意到。”
显然,Graf Zahl对AI的观点未获社区多数认同。
几天后,社区成员the-phinet在GitHub提交bug报告,详细列出社区对Graf Zahl使用AI代码的不满,及其一贯“自上而下、独断”管理GZDoom的问题:
“恭敬地说,@coelckers,请不要再直接推送到master分支。
如果61123d8需要‘澄清’,应通过草稿PR提交。
你推送了未经测试的代码。留‘稍后测试’备注很荒谬:一旦进入代码库,易被遗忘。
使用大语言模型(LLM)写代码,可能违反GPL协议。
你在意‘干净’的Git历史,但它满是你来回修改记录,因许多事未与团队讨论:59b5676、ec8e0e6、028a830。
你在提交中隐藏不小改动,让大家担心你会随意删除他们依赖的功能。
我们是一个团队。这显示你对同事的尊重有多少。
我理解这是你的项目,你可随意操作。但请通过PR提交,并等待维护者确认。这不仅树立好榜样,也给维护者和其他开发者审查你工作的时间。”
Zahl回应——“如果你们这么不满,那就随便fork项目好了。”
结果,社区开发者真就行动,开始自立门户。
原核心贡献者代表Nash Muhandes在DoomWorld论坛写道:
“嗨,我想在这帖子聊UZDoom,希望它成为‘半官方’集中讨论帖,防止误传。
由于一些分歧——有些最近出现,有些已忍近二十年——我们决定最好分叉(fork)这项目。
那么‘我们’是谁?我们是一群仍热爱GZDoom的人。过去一两年,我们持续为它提交更新、安全修复和维护PR的开发者团队。包括Jay、Gutawer、Boondorl、TehRealSalt,还有新加入的Marcus(他特别关注Unix平台部分,这正是GZDoom一直欠缺的领域)。当然可能还有未点名朋友,但如果你熟悉这圈子,大概知道他们。
UZDoom会继续坚持GZDoom核心理念:既保持对旧内容兼容性,也为创作者提供更多有趣新功能。
在初期,模组和存档会与GZDoom完全兼容。
不过,随着UZDoom增加新Mod功能、新作品开始使用这些特性时,它们可能无法再在GZDoom上运行。
我个人——并出于最真诚尊重——想感谢Graf Zahl过去二十年为GZDoom所做一切。我相信他知道这点(至少我希望),因为这感激之情过去二十年间我们多次在公开或私下表达过。
我和大多数人一样,不希望GZDoom遗产消亡。所以我认为最好方式,是通过分叉继续开发,同时建立更透明、多人协作开发模式。”
在Reddit讨论贴,Nash Muhandes进一步解释:
“UZDoom不再是‘一人说了算’或‘要么按我说的来,要么走人’开发模式。
所有代码必须通过Pull Request提交,并经多人审查;所有过程公开透明——无人能直接往主分支提交代码。”
他还在Bluesky上写道:
“我这二十多年倾注心血的东西——可以说是我的人生热情所在——从没见过像这次这样崩得这么惨。”
围绕一款32年前经典游戏的现代移植版,原本活跃的开源社区却出现内讧,网友在GitHub issue、Reddit上热议。
开发者kevansevans直言不讳批评项目创始人:
“Graf,你到底怎么回事?你消失一年,然后回来把工作推倒重来,用生成式AI的烂东西解决本可轻松搜索的问题,还在别人合理质疑时叫他们‘滚蛋’?这引擎现处于有史以来最健康状态,但感觉你恨不得无人碰你那宝贝代码。
你知道我怎么知道?因为有人真fork了这项目,你在对应Discord服务器大发雷霆,因你不再掌控全局,然后毫不费力直接拿走未完成代码,几乎无修改,最后当你‘成人脾气’没奏效,你又退出好几个服务器。”
另一开发者Boondorl直接怒怼:
“你刚刚彻底把GZDoom整废了。祝你玩得开心,你可以一人慢慢敲代码,无人再会提醒你改东西了。”
这一连串冲突让社区氛围骤冷,也让许多开发者失望——开源本应强调协作共享,但现实中可能因项目创始人个性管理方式演变成“个人项目”。同时,AI生成代码应用到实际项目时,仍存巨大争议。对此,你怎么看?
本文由主机测评网于2026-01-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260116836.html