全球代码质量骤降,罪魁祸首竟是AI!1.53亿行代码深度分析报告出炉

OpenCV学堂 2024-02-01 15:48



点击上方↑↑↑OpenCV学堂”关注我

来源:公众号 新智元 授权


【导读】想不到,AI生成的内容影响数据质量的问题,已经在代码上出现了。最近,GitClear发布的一项调查报告显示,用AI写代码,正在导致「全球代码质量面临下行趋势」。

AI正在使全球的代码质量下降!

最近,GitClear发布的一项调查报告显示,用AI写代码,会让代码的质量和可维护性不断下降。

这引起了全网热烈讨论:

「借助AI提供商,您可以将代码生成速度提高50%(即使是您不理解或无法编写的代码),但代价是代码的质量和可持续性不断下降。」

「我们要追求的,到底是质量还是速度?」

调查中,GitClear分析了从2020年1月到2023年12月之间编写的1.53亿行代码更改数据,

——1.53亿行代码,是目前已知最大的用于评估代码质量差异的数据集。

调查发现了什么?我们先看下面这张图:

图中展示了4年中的代码改动率——编写后不到两周就被撤销或更新的代码行百分比,——深色部分表示受AI代码生成工具影响的时间。

调查中同样发现,「新增代码」和「复制粘贴代码」的比例相对于「更新」、「删除」和「移动」代码的比例在增加。

这貌似说明开发人员在大量使用Copilot等AI代码生成工具,快速生成了大量代码,但随后发现了代码中的问题,——GitClear的报告预计在2024年,这个代码改动率将达到2021年AI出现前的两倍。

另外一点就是,AI代码生成工具不太理会人类程序员的一些原则(比如「重复造轮子」这件事),也就造成了代码库中越来越多的重复代码。

——不过很多码农都是「CV程序员」,这样看来,AI也算是学到了精髓。

2023年,GitHub Copilot大放异彩。在短短不到两年时间内,这款AI编程助手从一个「原型」迅速成长为「核心工具」,被全球数百万开发者在数十万家企业中广泛应用,开启了coding的新时代。

对此,GitHub发表了多篇研究论文,探讨了AI在软件开发领域的增长与影响。

速度提升55%,GDP增加1.5万亿

研究表明,使用Copilot的开发者编码速度可以提高「55%」,导致总的代码量增加了46%,并且为全球创造了1.5万亿美元GDP。

有了这样的成绩,也就不难理解为什么GitHub的CEO Thomas Dohmke,会在繁忙的工作之余,专门撰写关于AI革命的文章。

在2023年2月Copilot个人版用户超过一百万之后,GitHub又推出了GitHub Copilot for Business版本。

那么,有多少开发者在用AI来编写代码呢?

GitHub与Wakefield Research在2023年6月的一项研究中指出,92%的美国大型公司的开发者表示他们使用了AI编程工具。并且有70%的开发者认为使用AI带来了明显的好处。

不过,O’Reilly Publishing在2023年8月给出的调查数据显示,67%的开发者没有用过ChatGPT或Copilot。不管怎样,GitHub在市场上仍有巨大的潜力等待挖掘。

——然而,大语言模型(LLM)生成的代码引发的一个问题是:

这些代码的质量和可维护性到底怎么样?

面对AI滔滔不绝吐出的一大堆代码,程序员似乎不太容易发现其中的问题——毕竟都不是自己写的。

还有,众所周知,当程序员接手前人留下来的*山代码时,应该遵守的「潜规则」是:

如果这个代码能够正常运行,就千万不要妄想去重构。

AI生成代码背后的挑战

无法否认,Copilot实实在在的提升了开发者的编码效率。GitHub的研究显示,使用Copilot的开发者满意度提升了75%。

做初期产品开发的人是满意了,可后面负责长期维护的人就蛋疼了。

资深代码研究者Adam Tornhill(著有《代码即犯罪现场》)对此持保留态度:

使用Copilot可以使代码编写速度提高55%,但如果是本就不应该编写的代码呢?

如《Clean Code: A Handbook of Agile Software Craftsmanship》一书的作者Robert Martin所说,代码的阅读时间是编写时间的十倍。快速编写糟糕的代码,意味着给后来的代码阅读者带来了巨大的负担。

此外,AI代码助手还带来了其他问题:

比如代码助手擅长生成代码,却不擅长修改;当有多个生成工具给出建议时,评估哪个更好是很耗费时间的;

最后,AI代码助手与开发者的动机可能不同,对于代码优化来说,AI往往倾向于提出最有可能被接受的建议。

所以,相比于经验更丰富的开发人员,初级开发者更倾向于接受AI给出的代码建议:

而老鸟们深知,随着时间推移,代码的维护成本会越来越高。

代码操作介绍

GitClear将代码变更分为七个类别(研究中涉及前六种):
1. 新增代码:首次提交的代码行,代码行是全新的,不包括对现有代码行的小幅修改,也不包括那些被添加、移除后又重新添加的代码行。
2. 删除代码:被删除并提交的代码行,且至少在随后的两周内未被重新加入。
3. 移动代码:将一行代码剪切并粘贴到新文件或同一文件内的新函数中。「移动」的操作仅涉及位置的变换,代码内容不发生改变。
4. 更新代码:修改大约三个或更少的单词来更改原有代码行。
5. 查找/替换代码:从三个或更多位置移除相同字符串,并用一致的内容进行替换。
6. 复制/粘贴代码:在一次提交中,将相同的代码行内容复制到多个文件或函数中。
7. 无操作代码:指一些微小的代码变更,比如空格或同一代码块内行号的变化。
GitClear自2020年起根据这些操作对git仓库进行分类,并在Diff Delta文档中提供了代码操作的具体示例。
截至2024年1月,GitClear分析并分类了大约十亿行代码,这些代码来自商业客户(如 NextGen Health, Verizon)和流行的开源仓库(如 Facebook React, Google Chrome)。
其中,1.53亿行代码为有意义的变更,被用于本研究。
最后,还有一个单独的定义叫做「搅动」(churn),意思是代码被创建、推送到git仓库后,在接下来的两周内被撤销或大幅修改。
——也就是咱们最开始分析的那张图,可以将「搅动」理解为,作者一开始编写、提交并推送到公司git仓库的代码有问题,后来发现了。

数据分析

下表根据GitClear的数据,分析了不同的代码行操作数量,并按照代码的编写年份进行分类。
表中的前六项就是上面提到的代码变更的前六个类别,而最后一项是「搅动」。
将表格数据绘制成下面的图表,可以更清晰地看出各种代码操作类型的变化趋势,比如,图表中的浅蓝色细线显示了「Churn」类型代码的变化:
对于2024年的预测,这里使用OpenAI的gpt-4-1106-preview助手,对现有数据进行二次回归分析。
通过对比2022年与2023年的操作频率差异,识别出了三个可能影响代码质量的警示信号:

危险信号

2023 年,我们目睹了代码搅动、移动和复制粘贴方面的显著变化,这些变化背后的含义值得深入探讨。
代码搅动的新趋势
「代码搅动(Churn)」反映了推送到代码仓库后,在接下来的两周内被撤销、移除或更新的代码比例。
过去,当开发者完全自主编写代码时,这种情况相对罕见——2023年之前,仅有3-4%的代码会发生搅动。
然而,2022年,随着Copilot的首次亮相和ChatGPT的问世,代码搅动率的预兆性跳升至9%。
2022至2023年间,AI助手的崛起与仓库中错误代码的增加密切相关。
假设Copilot在2021年的普及率为0%,2022年为5-10%,2023年达到30%,这些变量之间的Pearson相关系数高达0.98,显示了它们的同步增长。
随着代码搅动成为常态,错误代码部署到生产环境的风险也随之增大。如果这一趋势持续到2024年,超过7%的代码更改可能会在两周内被撤销,这是2021年的两倍。
据此,报告预计Google DORA在年底发布的「2024 Devops 状态」报告中,将显示「变更失败率」的上升。当然前提是研究包含了2023年使用AI辅助的开发者数据。
代码移动减少,反映出重构和复用的减少
代码移动通常出现在对现有代码系统进行重构时。
重构系统,特别是代码的移动,是代码复用的基础。随着产品范围扩大,开发者会将现有代码重组到新的模块和文件中,以便新功能复用。
对经验丰富的开发者而言,代码复用的好处显而易见——与新增代码相比,复用的代码已经过测试并在生产环境中证明其稳定性。
复用的代码往往已被多人修改,更可能包含文档,这有助于新人更快理解模块。
随着标记为「复制粘贴」的代码增加,AI助手似乎在抑制代码的复用,而是提供了一种重复现有代码的简单方式,而不是鼓励重构和遵循「不要重复自己(DRY)」的原则。
复制粘贴代码增多,预示着未来的维护困难
长期来看,复制粘贴代码可能是对代码可维护性的影响最大的因素。
当代码行被重复使用时,本质上意味着「我没有时间去评估之前的实现方式」。
选择复制粘贴新代码而没有复用代码,会使得未来的维护工作变得更加困难,因为需要整合那些实现相同功能的平行代码的实现方式。
大多数开发者更喜欢「实现新功能」而不是「解读可能可复用的代码」,因此复制粘贴的代码往往会长时间存在。
而且在经验缺乏的团队中,可能没有有能力且有权威的代码维护者来删除那些重复的代码。
即便是资深开发者,要充分理解代码从而删除某些重复的代码,所需的努力也是非常巨大的。
如果没有CTO或工程负责人主动安排时间来减轻技术债,那么「自上而下的时间压力」就会成为新添加的复制粘贴代码,让这些代码永远无法整合到改善长期开发速度的库中的又一个原因。
由于GitClear只统计单次提交中的重复代码,2023年测得的11%复制粘贴比例可能只是只是今年复制粘贴代码非常小的一部分。

总结

根据报告评估的两个关键数据点显示,2023年代码质量出现了严重的下降。这种情况与大语言模型(LLM)的广泛应用,尤其是AI代码助手的流行有直接关联。
GitHub与Wakefield Research在2023年的一项调查反映出开发者已经意识到代码质量的下降。
当被问及「在没有AI辅助的情况下,你认为应该评估哪些指标?」他们最关注的是「协作与沟通」,紧随其后的是「代码质量」。
而当问题变为「在使用AI辅助时,你认为应该评估哪些指标?」他们的答案发生了变化,其中「代码质量」跃升为最受关注的问题,「生产环境中的问题事件」也上升至第三位:
单个开发者的情况可能无法说明为何「代码质量」和「生产环境中的问题事件」在使用AI时显得更加重要,但报告的数据揭示了一个可能的原因:
当开发者被一波又一波看似合适、能短期内解决问题的建议所淹没时,他们很容易不断增加代码量,却忽视了代码的优化和复用。
——如果按一下Tab键就能解决当前的问题,为什么要费心思管以后的事情?
AI助手和Copilot将如何重塑开发者的角色?随着AI技术的广泛应用,毫无疑问,我们已经进入了一个代码增长速度空前的新时代。
那么,2024年的问题可能是:谁来收拾事后的烂摊子?

网友讨论

面对AI带来的「全球代码质量下行」,网友也是深有体会:

谴责型:「我在两个月后取消了订阅(Copilot),因为我花了太多精力去修复所有代码错误。而且在处理任何复杂的事情或与SQL有关的事情时,它基本上是无用的(即使我提前加载了整个模式)。」
大佬型:「写下所有东西其实要花的功夫少得多,因为我知道自己想写什么,而且修正自己的错误比修正机器人的错误更容易」。
悲天悯人型:「我为那些将被这种垃圾彻底击垮的初学者而哭泣。」
中立型:「Copilot能做的事让我很吃惊,但确实不能说生成的代码很好。生成的代码肯定得改,但是确实能帮你省不少时间」。
参考资料:https://www.gitclear.com/coding_on_copilot_data_shows_ais_downward_pressure_on_code_quality

OpenCV学堂 专注计算机视觉开发技术分享,技术框架使用,包括OpenCV,Tensorflow,Pytorch教程与案例,相关算法详解,最新CV方向论文,硬核代码干货与代码案例详解!作者在CV工程化方面深度耕耘15年,感谢您的关注!
评论 (0)
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 62浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 68浏览
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 63浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 120浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 61浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 97浏览
  •  探针台的维护直接影响其测试精度与使用寿命,需结合日常清洁、环境控制、定期校准等多维度操作,具体方法如下:一、日常清洁与保养1.‌表面清洁‌l 使用无尘布或软布擦拭探针台表面,避免残留清洁剂或硬物划伤精密部件。l 探针头清洁需用非腐蚀性溶剂(如异丙醇)擦拭,检查是否弯曲或损坏。2.‌光部件维护‌l 镜头、观察窗等光学部件用镜头纸蘸取wu水jiu精从中心向外轻擦,操作时远离火源并保持通风。3.‌内部防尘‌l 使用后及时吹扫灰尘,防止污染物进入机械滑
    锦正茂科技 2025-04-28 11:45 94浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 123浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 154浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 102浏览
  • 一、智能家居的痛点与创新机遇随着城市化进程加速,现代家庭正面临两大核心挑战:情感陪伴缺失:超60%的双职工家庭存在“亲子陪伴真空期”,儿童独自居家场景增加;操作复杂度攀升:智能设备功能迭代导致用户学习成本陡增,超40%用户因操作困难放弃高阶功能。而WTR096-16S录音语音芯片方案,通过“语音交互+智能录音”双核驱动,不仅解决设备易用性问题,更构建起家庭成员间的全天候情感纽带。二、WTR096-16S方案的核心技术突破1. 高保真语音交互系统动态情绪语音库:支持8种语气模板(温柔提醒/紧急告警
    广州唯创电子 2025-04-28 09:24 177浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 135浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 53浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦