" 程序员 " 这个职业将不复存在,这样的言论在过去两年随着生成式人工智能的不断进化、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 编程似乎更类似于寅吃卯粮,由其所产生的技术债务有朝一日终归是要出清的。
【本文图片来自网络】
登录后才可以发布评论哦
打开小程序可以发布评论哦