一个成本低速度快,一个代码质量高程序可扩展性好,你会怎么选?
一位名叫 Ab Advany 的技术人员最近接了个小活儿,帮他的一位好友在其工作单位监督编程案例研究。这项案例研究总共花了两周时间,他们聘请了两名程序员为其创建最小可行产品(MVP)。
这两名程序员都是为该机构工作了很长时间的承包商。Ab Advany 之前也曾与二人合作,对两人的背景十分了解。首先是来自德国的 Alex,拥有 19 年编程经验,采取 100%纯手动编程。来自巴基斯坦的 Hamid 仅拥有 4 年开发经验,在编程中采用了手写代码+Copilot+GPT-4+无代码开发。
Ab Advany 表示他们原本以为 Hamid 大概能在 8 到 10 周内完成工作,而 Alex 可能要多花上 1、2 周时间。但最终结果却令他们大为意外!Hamid 在一周之内完成了此项目,端到端测试与测试覆盖率均达到 100%;Alex 则只完成了 7%。Hamid 的开发总成本为 3819 美元,Alex 的开发成本则为 3520 美元。
让不使用 AI 的老程序员出局?
具体来说的话,两位程序员都收到了 Figma 设计要求和详细规格。设计师会帮助他们获取所需资产,外加需要集成的现有代码。
Hamid 在一周之内就完成了首个版本,代码测试覆盖率和无代码部分的端到端测试均达到 100%。95%的工作量似乎已经完成,而且基本看不出有什么问题……
Hamid 在 @bubble 中构建了 UI 和前端工作流,使用 GPT-4 生成 Cloudflare Workers,使用 Copilot 集成现有代码,并使用 GPT-4 来生成测试。
Hamid 的开发成本细则:
GPT-4: 211 美元
Copilot: 20 美元
Cloudflare: 5 美元
Bubble: 134 美元
总计: 2460 美元 (共 41 个工时)
托管/运行成本:每月 139 美元
Alex 完成了总工作量的约 7%,成本为:
Vercel: 20 美元
总计: 3500 美元
开发所有内容的预期成本:4.5 万美元。预计额外还需要 1.1 万美元进行测试。
托管/运行成本:每月 20 美元
Ab Advany 的好友跟 Alex 交流了研究感受,对方的结论是“但纯手动开发的应用运行成本要低得多,而且一切都在自己的掌握当中。”Alex 显然没理解 13 倍的产品发布速度和 1/25 的开发成本到底意味着什么。
他们让 Alex 出局了:因为他只相信手动编码,而不愿借助无代码/AI 的力量……而 Hamid 则收到了该公司全职工作的邀请:他将培训其他程序员,让大家结合无代码+AI 进行编码……
拉仇恨?!
Ab Advany 将这个事情分享到了 Twitter,他很好奇这样的比对会带来怎么样的结果。
他还在 Twitter 线程里补充道:“我朋友所在的机构有 100 多位像 Alex 这样的开发人员。现在,他们打算对老程序员做重新培训,甚至用 Hamid 这种新兵取代他们……我觉得 Hamid 这类开发者五年之后也仍然不愁工作岗位,但 Alex 所代表的群体可能会被迫跳槽或者转行。大家怎么看?”
案例发布后,大家对他进行了更仔细的问询:
网友 A:“为什么 Alex 不想使用这些工具?我从 1986 年开始编程,我就很喜欢使用 Copilot、ChatGPT 这些,它们让我的生活更轻松……”
Ab Advany:“你阅读完这个 Twitter 线程的话,你会看到许多传统程序员对‘为什么不使用 AI’的答复。其中比较重要的一点是,当前的 AI 有上下文限制。因此,要使其工作,我们需要进行函数式编程。”
网友 B:“用 GPT-4 武装的 Alex(老程序员) 会是一个更好的解决方案。难道只有我这样觉得吗?”
Ab Advany:“Alex 不想使用 GPT-4。他认为会产生错误的代码。特别是这意味着 Alex 需要适应 AI,而不是 AI 适应 Alex。”
同时 Ab Advany 也收到了非常多的反方意见:
“当然,对于简单的项目、网站/应用程序等,你可以得出这个结论。但对于具有更高复杂度的新颖解决方案,你不应该运行你不理解的代码,它关乎到开发者的声誉。如果它们存在安全漏洞,甚至有相关法律责任,该怎么办?”
“对于构建可扩展和可维护的长期关键任务项目,我会选择 Alex。”“解雇 Alex 是错误的举动。”
“散布这样的谎言,你能得到什么?在营销吗?此外,这样的比较甚至没有提到代码质量。将来你肯定要为质量、性能和可维护性付费。”“可能有些人真不在乎代码质量吧?”
……
不出所料,仅两天后,他发了条新推文:“我的推文引起了程序员们的强烈不满。”
更要命的是他的推文配图,“RIP,传统程序员”。他坚持认为大家必须更好地评估问题并选择正确的前进方向。因为太过激进,所以他得到了网友们对他进一步的评价:“真是越来越让人讨厌了!”
抗拒 AI 辅助编程会是一场“必败仗”吗?
基于大型语言模型的 AI 工具,比如 OpenAI Codex ,或来自微软的 GitHub Copilot ,亦或来自谷歌 DeepMind 的 AlphaCode,已经开始改变许多开发者的工作方式。虽然目前它们只可以用来编写代码片段、发现错误、编写注释、提供建议等,但这并不妨碍让大家见识到它的威力。
去年,谷歌的研究人员发现,人工智能将“编码迭代时间”减少了 6%,这份研究主要针对谷歌内部的 10,000 名开发人员。
GitHub 去年也调查了 2,000 名程序员,了解他们如何使用 GitHub 的 AI 编码助手 Copilot。大多数人表示 Copilot 帮助他们减少挫折感并增加成就感;88% 的人表示这提高了他们的工作效率。在报告中,GitHub 说道:“使用 Copilot 辅助编程的开发人员完成任务的速度明显更快——比不使用它的快 55%。”
虽然生成式 AI 模型和工具还在改进中,但一点也不影响其普及速度,越来越多的开发者开始使用它们。以 GitHub Copilot 为例,微软于 2022 年 6 月首次面向个人推出该工具时,平均有超过 27% 的开发人员代码是由 GitHub Copilot 生成的。到了今年 5 月,微软再次统计时,这个数字已经变成了 46%——而在 Java 编程语言环境中,这个数字跃升到了 61%。
所以 GitHub 大胆断言,“鉴于这项技术可以帮助开发者加快构建速度,所以展望未来,不采用生成式人工智能工具的科技公司将在生产力方面处于明显劣势。”
Ab Advany 分享的案例,也许这并不是让我们单纯地比较哪个方案更好,而是让我们明白,我们已经有了很多选择,AI、低代码等工具都可以用来解决部分问题,那么该是时候让我们再次评估如何让开发人员进一步专注于核心业务逻辑、减少底层开发、让大家更高效更轻松地工作了。
至于 AI 辅助编程是不是未来发展方向?这就像一位网友给 Ab Advany 的评论中那样:“纯粹的非 AI 辅助编程工程师在这里是在打一场必败仗,这很明显……现在谁会在没有 Copilot 的情况下编写代码呢?”
参考链接:
https://twitter.com/advany/status/1664451798793584642
https://archive.ph/o21uE#selection-819.4-819.11
https://github.blog/2023-05-09-how-companies-are-boosting-productivity-with-generative-ai/
相关阅读:
评论