翻译自 AI coding will unlock the next wave of developer productivity and reshape the software supply chain 。
AI 编码工具将随着时间的推移不断改进,为开发者带来新一波的生产力提升。随着 AI 考虑到安全、运维和测试问题,并在生成代码时避免了下游工具的涉及,价值将逐渐向 AI 编码工具转移。
仿佛一夜之间,每个开发者都有了一位 AI 助理。Insight 资本公司旗下的 Sourcegraph 发现,95% 的软件开发者使用像 GitHub Copilot、ChatGPT 和Cody(Sourcegraph 的 AI 代码助手)这样的 AI 工具。现在,我们拥有了新兴的 AI 编码工具景观:
有许多新的工具利用 AI 帮助编码。它们可以是编码程序的插件,也可以是用于搜索和迁移代码的工具,甚至可以是自动化工作流程的代理。这些工具正在改变游戏规则,因为它们承担了以前由人工手动编码完成的任务。
AI 编码工具不能完美地猜测开发者在想什么,至少目前还不能。但说实话,这并不重要。尽管它们给出的建议可能不总是准确的,但它们仍然帮助开发者保持专注,激发创造力。对于各种类型的开发者来说,它们都很有效,即使这些建议有点像 AI 的想象狂奔。
为了了解语言模型如何生成代码,我们可以想象一个高中学生为AP考试写文章。他们阅读问题并开始思考许多不同的主题和想法。然后他们运用更高层次的思维将这些随机的想法组合成一个有组织的论点和支持论据。语言模型也是以类似的方式工作。它们搜索庞大的知识数据库以找到有用的信息,就像我们在开始规划一篇文章时大脑所做的那样。它们可以非常富有创造力和启发性,特别是在模型产生幻觉并在不同领域之间建立联系时。但目前,当涉及到将所有东西整合在一起,尤其是在更复杂的情况下,模型仍然面临困难。然而,由于AI技术正在快速发展,这种情况可能很快会改变。
使用 AI 辅助编码助手可以帮助新手和有经验的工程师提高生产力。他们可以更快地完成工作,投入更少的精力。然而,处于中间水平的工程师可能会面临一些挑战。他们通常处理的问题更复杂,而 AI 可能无法很好地处理这些问题,他们可能没有足够的经验来判断 AI 生成的结果是否可靠。
以下是 AI 编码助手在软件开发供应链的不同阶段所带来的价值的可视化映射:
S这些观点是基于当前的“最先进技术”,而事物正在迅速变化。我们现在看到的情况可能在不久的将来会有所不同。
AI 编码助手使没有技术背景的知识工作者能够编写代码。它们还通过提供可靠的样板代码、自动完成代码的建议,甚至将文本转换为 SQL 命令,帮助经验较少的工程师。如果你是初级工程师,正在处理创建基本 API 、集成数据或将高级工程师构建的服务整合到特定应用程序等任务,你可以期望提高 50% 甚至更多的生产力。
然而,如果你是中级工程师,可能不会看到太多的生产力提升,甚至可能会有一些负面体验。尽管中级和有才华的初级工程师会从 AI 生成的代码中受益,但他们的项目可能更复杂,这可能导致更多的错误,并且在修复 AI 生成的代码方面可能需要更多的时间。他们可能也很难区分好的代码和糟糕的代码,因此他们将花费额外的时间进行调试。
我们预计“10倍”工程师将成为“ 15 倍”工程师。
另一方面,技术高超的工程师,通常被称为“ 10 倍”工程师,将变得更加高效。 AI 编码助手对于非常复杂的编程任务可能不太有用,它们可能会提供一些建议,但并不完全准确。但关键的区别在于这些顶级工程师可以快速发现 AI 生成的代码的缺陷。熟练的工程师有独特的思维方式,有时会拖延,因此 AI 带来的生产力提升真的有助于保持他们的积极性和高效性。我们预计“ 10 倍”工程师将成为“ 15 倍”工程师。
随着 AI 承担了一些以前需要大量后端工程师的任务,这些工程师将开始转向需求更大的前端开发、安全和平台工程师的角色。
缺乏高级编程技能的系统管理员和信息安全专业人员在满足创建定制应用程序和工作流程的日益增长的需求方面可能会遇到困难。因此,他们可能会逐渐被更有技术能力的程序员所取代,这些程序员将寻求在这些领域的工作。
我们还可能会在网络安全领域看到一系列由生成 AI 驱动的新攻击向量,这将吸引更多复杂的工程师来对抗对手行为。
在过去的五年里,我们已经逐渐转向 “shift-left” 工具,使开发人员能够进行早期测试和评估,通常由“运维”下游处理。其前提是要求开发人员获得有关运维或安全方面的一些知识,而不是让运维和安全团队对开发人员的服务进行探查。
然而,问题在于,所有这些要求正在积累,对于开发者来说,这变得太多了。他们浪费了本应该用在主要编码工作上的宝贵时间和精力。这就是 AI 编码助手发挥作用的地方。它们可以帮助消除这些 shift-left 工具带来的一些麻烦。不仅如此,它们还可以使后续的其他任务,比如监控和安全,随着时间的推移变得更加简便,因为 AI 可以在编写代码时立即发现性能和安全问题。
下面的图表突出显示了我们如何在新的“ AI 世界”与“旧世界”(shift-left之前)和“Shift-Left世界”之间看到软件开发供应链不同阶段的价值积累:
总体来说,多亏了 AI ,更多的软件将更快地发布。在过去的 15 年里,我们已经从传统的瀑布式开发转向了敏捷开发方法。现在,借助 AI 的帮助,我们将经历更多的生产力提升,因为开发周期将加速。这将极大地影响开发者工具生态系统。我们只能推测未来的变化,但根据我们目前所知,以下是一些预测:
当我们的本地计算机的依赖关系与构建服务器上的依赖关系不匹配时,会导致构建失败。这是一个常见问题,因为工程师很难坚持使用一致的编程语言、版本和库。AI驱动的编程将加速开发周期,这将加剧开发过程中的瓶颈。我们可以预期对加速构建过程的技术(如 Incredibuild、EngFlow、Vercel/turborepo、nx.dev、warp.build)或直接解决依赖扩散问题的技术(包括 Tangram、Flox )的需求会越来越大。
针对测试和漏洞管理的 shift-left 工具正逐渐变得像“扔过墙”的左派工具,因为开发者负担不断增加,需要完成越来越多的检查来部署软件。这类工具在软件供应链中可能成为一个潜在的瓶颈,随着软件开发速度的继续加速,这一情况只会加剧。为了解决这个问题,shift-left 工具需要自动化大部分过程。像 Tabnine(AI驱动的单元测试)、Github Copilot(AI驱动的漏洞检测)、Swimm(AI驱动的内部文档)、Codium(AI驱动的完整性测试)这样的公司正在帮助自动化这些过程,我们预计新老公司在未来 12 个月内将向其产品中添加 AI 。
无论是在测试、可观测性还是安全性方面,关注点逐渐从手动解释数据点转向利用聊天式自然语言处理(NLP)界面,从多个来源综合信息。像 Datadog 和 Splunk 这样的公司将开始利用大型语言模型(LLM)来自动生成根本原因分析,但它们的能力受限于各自平台上可用的数据。在这个新的景观中,诸如 BigPanda(一个AIOPs平台)和 Moment.dev(一个内部开发者门户)之类的覆盖产品显得非常重要。这些工具整合了多个数据源,实现了更全面的分析。由于其固有的能力提供更广泛的视角,Overlay 工具往往是 DevOps 专业人员在深入到像 Splunk 或 Grafana 这样的监控工具之前首先看到的工具。如果 Overlay 工具能够实现 AI 驱动的体验,用户将更倾向于使用这些功能,并且对其整合的上游工具的依赖将大大减少。
我们一直存在的问题之一是,开发者以一种方式编写代码,但负责确保一切在生产环境中运行顺利的人看到的是完全不同的东西。AI 变得越来越核心,因此确保所有不同的部分能够协同工作并使用相同的语言非常重要。微软凭借其拥有的资源,如 Github 和 Azure ,处于最佳位置来实现这一点。在初创公司的世界中,我们开始看到创造性的解决方案,比如 Korbit,它使用 LLM 代理来丰富来自 Datadog 的性能上下文的代码建议。
虽然近年来,分布式系统的复杂性主导了可观察性领域,但未来 AI 驱动的编程和无服务器计算将把重点从系统遥测转移到应用代码上。故障排除和改进代码将成为主要关注点。我们预计在可观察性方面的下一个改变游戏规则的因素将把代码调试体验转变为一种愉悦和高效的过程。
拥有从编码到部署的完整开发工具体系的微软可能会随着 AI 强调整个工具链的集成价值而吸引越来越多的开发者关注。但就像我们在 GitHub 上看到 GitLab 一样,有机会为更关注安全/隐私的公司打造一个集成的开发工具链,他们可能不愿过于依赖于单一供应商。
尽管低代码平台将继续提供可重复使用的 UI 组件和 JavaScript 抽象,但用户将越来越多地依赖 AI 来定义复杂的工作流函数。在未来,用户将能够用文字描述整个内部工作流程,然后AI将解释并生成适合他们需求的应用程序。Superblocks和 Airplane.dev 已经在朝这个方向迈出了步伐,其他公司也将会跟进。
现在还只是刚刚开始,很难看到黄金之路上未来几步之外的景象。我们所知道的是,对于世界各地富有创造力的开发者而言,开发将变得更有趣、更具挑战性和更有回报。AI 还将重塑整个开发者工具的景观,并重新调整已定义行业形态的现有竞争要点。