AI 是否正在造就高效率但缺乏创造力的程序员?
AI 编程工具提高了软件开发人员的工作效率,但随着产出的增加,原创性和品质有所下降。
人工智能 (AI) 编程助手正在改变软件的开发方式。这些工具能非常有效地帮助程序员和软件开发人员用编程语言编写代码,即使是对那些经验较少的人来说。如今,几乎任何人都可以通过向AI聊天机器人发出指令,从零开始制作一款应用程序或软件,这种做法被称为“氛围编程”(vibe coding)。
OpenAI 在2021 年发布的 Codex 是首个能够根据简单的文本提示构建完整程序的强大 AI 模型。随后,该公司与 GitHub (一个供全球开发人员存储软件代码并进行协作的平台)合作,推出了自动补全程式码工具 GitHub Copilot。2023 年初,Copilot 升级为 Copilot X,成为一款功能全面的AI 编程助手。
如今,Copilot X 已不再是市场上唯一的选择。其他主要AI 企业,如 Anthropic 和 DeepSeek,以及谷歌、亚马逊和 Meta 等科技巨头,也都推出了各自的AI 辅助软件开发工具。随着数百万开发人员开始依赖AI ,一些迫切的问题随之浮现:这些工具是否改变了开发人员的编码方式?它们能否真正提高生产力?
香港中文大学(中大)商学院决策、营运与科技学系教授金京泰,联同同系伟伦商业人工智能学教授张晓泉、博士生李欣羽,以及新里斯本大学商业经济学院(Nova SBE )的Francis Joseph Costello,尝试解答上述问题。他们在题为《生成式人工智能时代开源软件开发行为之转变》的研究中,分析了GitHub 上 1,350 名开源软件开发人员在 Copilot X 发布前后的行为数据。
分析发现,CopilotX 对此前在 GitHub 上活跃度较低、偶尔才有贡献的开发人员有明显的帮助。这些非活跃开发人员在使用Copilot X后,参与开源项目的数量增加了 48%,而且尝试新编程语言的可能性也大幅提高。

至于原本活跃度就较高、经验较丰富的开发人员,他们当中使用Copilot X 的人更新代码的频率比未使用的人高 12%,参与的项目数量也高出 6%。AI 不仅帮助开发人员加快工作速度,还能让他们能同时兼顾更多项目,并更轻松地在不同项目之间切换。
参与开源项目时,即便只需要进行微小的更新,开发人员有时候也必须先熟悉一个陌生的代码库并弄清楚软件的架构。对于偶尔参与的开发人员来说,这些障碍足以令他们却步。
金教授指出:“AI编程助手可以降低这些门槛,让迈出第一步变得更容易。随着对话式AI编程助手的出现,开发人员们更愿意去探索新的编程语言和项目。”
轻松编程的隐性成本
虽然生产力有所提升,但复制粘贴的代码也明显增多。同时,尽管启动的项目变多了,但这并不一定会带来更多原创性成果。金教授补充道:“AI 技术也许能提高开发人员的生产力,并让他们敢于尝试原本超出自身能力的项目,但这些成果是以牺牲代码质量和原创性为代价的。”
“复制粘贴的代码并非总是有害,因为在软件开发中,一定程度的重复使用代码是正常现象。问题在于,如果开发人员在未完全理解这些代码跟项目其余部分如何配合运作的情况下,就插入大段代码,项目可能会积累技术负债,或埋下不稳固的隐患。”
这些隐藏问题的积累可能会导致软件日后更难维护、调试或改进,也可能引发兼容性问题、编码风格不统一,并导致后续需要更多返工。对于项目经理而言,这一发现提醒他们应将AI生成的代码视为初稿,而非最终版本。
AI可助力职业发展
开源软件主要依靠开发者的自愿投入,他们需要利用个人时间参与专案。虽然有些程序员和软件开发人员是出于个人兴趣参与其中,但 GitHub很大程度上也像一个公开的作品集,用于展示近期的开发成果和协作项目。雇主也经常通过查看开发人员在GitHub 上的个人主页,来评估他们的技术能力和经验。

为了进一步探究开发人员对AI 的使用是否影响了他们的职业发展,研究人员将开发人员的 GitHub 记录与他们的 LinkedIn 的人档案进行配对分析,发现了令人鼓舞的迹象:开发人员在开始使用 Copilot X后的六到十二个月内,更有可能经历内部岗位变动或者获得晋升。
由此看来,参与更多开源项目以及对新技术的熟练掌握,似乎与积极的职业成果相关。金教授表示:“GitHub上的可见成果也能向雇主传递信号,表明该开发人员正在适应新工具,并能利用这些工具完成更多工作。”
“但AI编程工具对职业发展的助益是暂时的。当只有少数开发人员真正懂得运用这些工具时,他们的效率会明显高于其他人。可随着这些工具被广泛采用,仅仅使用AI将不再能让开发人员脱颖而出。”
在AI 时代,开发人员如何脱颖而出?
由于AI 编程工具带来的优势只是短暂的,而且复制代码的现象日益普遍,金教授提醒开发人员,AI 仅应作为学习伙伴和助手来使用。尽管AI 可以加快软件开发,但它无法取代开发人员理解和评估系统的责任。“应将AI 工具视为导师,而非捷径。最终的判断仍须由开发人员负责。”
这一建议对于初学者而言尤为重要,因为经验较少的软件开发人员更倾向于直接采用AI工具生成的代码,即使这些代码质量不高或存在错误。
随着技术飞速发展,在保障软件质量和帮助发现开发过程中的关键问题方面,AI工具可以发挥至关重要的作用,包括审查可能引入风险的程式更新,以及找出需要进一步测试的部分。技术娴熟的开发人员可以利用这些工具来验证AI 生成的代码、制定明确的编码规范,并将代码整合到复杂系统中。
金教授预计,从长远来看,更持久的职业优势很可能来自更高阶的能力,比如理解软件背后的问题、评估AI生成内容、设计易于维护的系统,以及协调人机协作的工作流程。
“掌握AI编程工具的使用方法所带来的职业优势不会消失,而是会转向那些能够以更高阶、更具战略性和复杂的方式来运用这些工具的人。”