四成代碼是AI寫的?這和程序員有啥關(guān)系?
注解:这个标题简化了英文标题,使其更加口语化,并且突出了文章讨论的核心问题,即人工智能生成代码对软件工程师的影响。
-
微软CEO萨提亚·纳德拉说,公司“多达30%的代码现在是由人工智能编写的”(2025年4月)。
-
Anthropic的CEO表示,在12个月内,“AI可能会编写几乎所有的代码”(2025年3月)。
- 谷歌CEO表示,“他们添加的代码中超过四分之一是由AI生成的”(2024年10月)。
看到这种标题时,我常常会想,XYZ这个数字有软件工程师替代率的意味。由AI写的代码就是人类没写的代码,我们也不再需要那些30%的人类来敲键盘。考虑到媒体总是要吸引眼球和争夺读者注意力,我就不明白为什么他们不会选择更戏剧化的说法。
这种猜测确实挺有趣的(他们不是也只是根据一些线索或启发式方法做出猜测吗?),除了评估AI编码工具的普及率之外,似乎没有太多意义。
100% 的代码是自动生成的,经过审查后有 70% 的代码被删除了让我给你一个最近的例子。我最近完成了一个小型项目,创建了一个作为MCP工具的本地Python解释器环境,可以把它想象成ChatGPT中的代码解释器。
何必自找麻烦,不是已经有Python工具了吗?确实有,但是要么是在本地运行Python代码,这风险很大,要么就是依赖Docker或远程环境,这些环境搭建起来挺费劲的。
想法是将自定义的、沙箱化的本地Python解释器嵌入到MCP服务器中,由HuggingFace的smolagents库提供。
克隆了smolagents的仓库后,研究了代码库的内容,并创建了一个解释器的小示例后,我要求Cursor的Agent创建一个新的MCP服务器项目。我给它展示了那个示例和解释器的代码,并给了它Anthropic的MCP服务器文档的链接。代理创建了一个完全没有lint警告的代码库。
然而在接下来的几个小时里,我对生成的代码进行了多次迭代。我删除了大部分文件和行。积极利用AI,尤其是自动补全和聊天功能,也就是说,我自己并没有输入多少Python代码。
可以说,100%的程序代码都是由AI生成的。可能。这是否意味着什么呢?
- 在构建软件的过程中我不再需要(完全被AI替代)。
- 或是我工作效率提高了300倍,因为我作为一个普通人每分钟只能打30个字左右,而最先进的模型(每分钟约3000个词)每秒生成约150到200个tokens。
以下是这些数据:
- Claude 3.7/Cursor Agent 1.0 版本:9 个文件,1062 行,45 条注释,158 空白行
- 最终发布的版本:4 个文件,318 行,9 条注释,79 空白行
在迭代代码库的过程中,我动用了大脑来理解AI生成的代码,同时也加深了对实际需要构建的内容的理解——这需要付出努力和时间。有时候阅读代码比写代码更难。此外,编写代码(或者说对底层代码的修改)有一个非常重要的功能,那就是帮助你熟悉代码库,并给你时间让这些内容在脑海中沉淀,变得更容易理解。
毕竟,我废弃了大约70%的AI生成的代码。这说明了什么?是否意味着AI生成的代码全是垃圾,如果必须扔掉?几分钟生成,几个小时重写或调试?我不这么看。不过,单凭重写比例并不能说明全部问题,就像生成的代码占比一样。
开发软件不只是写代码有人可能会说这个例子是孤立的。从头开始创建一个小型项目在现实中并不常见。的确如此。然而,我认为它仍然提到了一些相关的问题,并给出了一些数字。在维护大型代码库时,同样存在大量的生成代码被移除或重新工作的趋势。任务规模越大,工作流程越自主,涉及的代码行和文件越多,你就越需要解决这些问题。不知为何,即使是最好的AI工具仍然难以掌握项目的氛围——它们在做出与项目精神一致的改变时仍然存在困难。
这与整合和发布代码有关。你是否知道,曾经微软的 Windows 发布周期是三年,"在从开始到完成这三年中,大约只有六个月到九个月的时间用于编写新代码?其余时间则用于整合、测试和发布测试版阶段" 1,2。
编写代码只是众多重要任务中的一部分,但并不是唯一的。你知道吗?根据最近微软的一项研究(https://arxiv.org/pdf/2502.15287),开发人员只花20%的时间在编写或重构代码上:这就是XYZ%这个由人工智能生成的指标所反映的情况。
在与团队和客户合作的过程中,开发软件过程中,我发现了许多AI几乎无法发挥作用的地方。
如果你的利益相关者变得不响应,玩内部政治,在需求上摇摆不定,ChatGPT(或某个高大上的“代理”)会追着客户,找到所有的需求矛盾(例如:7条绿线,其中一条必须透明),与整个团队沟通交流,并缓解任何核心风险?
即使你有看似高要求的标准……每个团队成员需要花多少时间来接纳他们各自的目标?团队需要花多少时间来找到围绕目标组织、界定范围并将业务需求转化为具体实施方案的内部共识?生成式AI工具是否会加速团队动态发展,使其从形成和震荡阶段直接跳转到规范和高效协作阶段,在几天内完成而不是几周?
我经常看到这种情况:人们思考较慢,我们的大脑在处理信息和建立维护社交联系方面有自然的限制。生成大量没人关心或尝试理解的文字并不能解决任何问题。
鉴于目前AI工具在软件开发中的状态和趋势,我将它们视为提高生产力的独立工具,其中人类是瓶颈。AI代理还不能完全替代人类在日常工作中的所有角色。即使在更高水平的AI自主性下,人们还是需要时间来做出决定、调整他们的看法、交流和达成共识。
生产力最终,企业希望用更少的努力或资金完成更多的工作。在开发团队中采用人工智能,并以某种神奇的数字(不知为何总是20%到30%)来削减成本和人员——这并没有像预期的那样有效。整个行业内并没有明确展示出开发者生产力的显著提升。我对去年秋天的两项研究特别感兴趣,这些研究探讨了人工智能如何提高开发者的工作效率。
- 👍 微软和埃森哲(Accenture,https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4945566)报告任务完成量增加了26%。
- 👎 Uplevel(https://lnkd.in/eHnbrWAQ)发现循环时间没有变化,不过错误增加了41%。
P.S > 你知道吗?到2025年4月为止,流行的AI编程助手Aider的代码中,大约有80%是由Aider自己生成的[1]
P.P.S > 在 “P.P.S >” 出现之前,这篇文章正好是1200字,我花了好几天时间思考,4个小时写作。GPT 4.1 只需要12秒就能生成类似长度的博客文章 :)
[MCP]:模型上下文协议(MCP)
[LLM]:大型语言模型(LLM)
[RAG]:检索增强生成(RAG)
[SSE]:服务器发送事件(SSE)
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章