三易生活 03-05
AI加重技术债务,用AI写代码可能不是件好事
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

" 程序员 " 这个职业将不复存在,这样的言论在过去两年随着生成式人工智能的不断进化、AI 开始能够代替人类写代码,而大行其道。从百度、阿里到谷歌、Meta,AI 生成代码也成为了一众科技大厂彰显 AI 能力的 " 示范田 "。

那么程序员真的开发出了一个可能会 " 优化 " 自己的终结者吗?专门从事代码质量分析和改进的 GitClear 公司在最新报告中,给广大程序员群体吃了一颗定心丸。在这篇题为《人工智能生成的代码如何加剧技术债务》的文章中揭示了这样的现象,即随着 AI 代码工具的流行,代码重复率上升和质量下降的问题日益严重。

在 2024 年,GitClear 跟踪到五行及以上代码块重复相邻代码的频率同比增加了 8 倍,同样是在 2024 年,46% 的的代码变更是新增行,复制粘贴的行数超过了移动行数。据悉,GitClear 提出的 " 移动行数 " 是用于跟踪代码重组的一个指标,这样的数据表明代码复用和重构正在减少。

简而言之,GitClear 方面发现 AI 编程工具并不存在 " 代码复用 ",而是只会一味新增代码,也就是说 AI 是 "Ctrl C+Ctrl V" 的好手,往往会直接复制粘贴写好功能的代码。作为对比," 不要重复自己 " ( DRY ) 则是一种被人类程序员广泛接受的编程原理,它要求代码中没有重复的部分。

虽然 AI 编程工具加快了代码的生成速度,却无法避免代码质量的下降,以至于让使用 AI 编程的项目变得更加难以维护。不受控制的 AI 生成代码将会给项目的长期维护带来负担,特别是对于那些使用时间较长的代码库更是如此。如今不仅仅是 GitClear,就连超过 1/4 的新代码已经由 AI 生成的谷歌,也意识到了 AI 编程工具的负面性。

每年都会发布一份关于软件开发、部署、交付、安全性、文化和组织变革行业现状报告的谷歌旗下 DevOps 调研与研究团队(DORA),在最新的 DORA 2024 报告中就指出,研究人员发现 AI 编程采用率的提高使得软件交付稳定性降低了 7.2%,交付吞吐量降低了 1.5%。

DORA 团队负责人 Nathen Harvey 表示," 我们看到采用更多人工智能功能的工程师或团队,其工作流程时间更短、个人生产力水平更高,然而我们没有看到这种生产力和时间以及流程,在能够快速安全地交付软件方面产生良好的下游影响。"

如果说大公司、行业机构的说法不那么接地气,其实也有具体的开发者抱怨 AI 编程。从去年夏季,也就是 AI 编程工具 GitHub Copilot、Cursor ‌被大规模应用后,海外技术社区 HakerNews 几乎同步就出现了大量吐槽 AI 代码的帖子。

比如名为 Tacitus 的开发者就表示,在他为客户解决技术问题的过程中发现,有相当多的问题源自于客户使用了 ChatGPT 等 AI 工具生成的代码。由于 AI 幻觉的存在,这类代码往往会出现各种低级错误,例如访问不存在的端口,或是试图从不存在的 API 响应中读取数据。

这一类错误属于典型的人类程序员一眼就能发现,但毫无编程知识的人则完全无法察觉。从某种意义来说,Tacitus 遇到的问题以及他的抱怨,恰恰就指出了当下 AI 编程最大的命门,那就是在不了解编程的情况下使用生成式 AI 写代码,往往不会带来生产力的提升。

更为致命的一点,是 AI 本身的高技术属性是极具迷惑性的,很容易让使用者通过即时、便捷的体验产生 " 知识膨胀 " 的错觉,以至于让使用者盲目相信 AI 的输出。如此一来,一个更加严重的问题就会浮出水面,那就是 AI 能不能担责?

从目前业界认可的 AI 伦理来看,AI 显然是不能背锅的。那么 AI 幻觉的存在导致 AI 编程工具输出的代码不稳定,就需要人类程序员来维护和检查。可是如果 AI 生成的内容都需要人工再校核一遍,AI 也就没有意义了,因为核校不仅是对数据和来源,还包括了编程思路。

如果 AI 生成的代码需要人工来核校,又与 " 重复造轮子 " 有什么区别?GitClear 在相关报告中就悲观地预测," 如果开发者的生产力继续通过提交数量或新增行数来衡量,AI 生成的代码可维护性下降将会加剧 "。由 AI 生成的代码缺乏可维护性,就将加重开发者的运营负担,进而带来负面的财务影响。

AI 编程的支持者认为,AI 将人类程序员从繁琐编写代码的工作中解放出来,使得他们能够专注于更具创造性的工作,也就是用少数有 AI 辅助的高水平程序员替代普通程序员。毕竟众所周知,创造性的工作往往只需要少数天赋型选手负责,以往的科技产品、互联网服务很多就都是几位大神带着一批普通人搞出来的。

所以未来的编程或者说软硬件开发,可能就是 " 大神 " 来引流潮流,而打下手或许就会从普通人变成 AI。然而 GitClear、谷歌 DORA,乃至 HakerNews 如今指出了 AI 靠不住。所以除非彻底解决 AI 的幻觉问题,让 AI 不再虚构不存在的事实,编程工作交给 AI 才具有可行性。

现在的 AI 编程似乎更类似于寅吃卯粮,由其所产生的技术债务有朝一日终归是要出清的。

【本文图片来自网络】

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

ai 编程 程序员 谷歌 人工智能
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论