最近,开源中国 OSCHINA、Gitee 与 Gitee AI 联合发布了《2024 中国开源开发者报告》。报告聚焦 AI 大模型领域,对过去一年的技术演进动态、技术趋势、以及开源开发者生态数据进行多方位的总结和梳理。查看完整报告:2024 中国开源开发者报告.pdf
在第二章《TOP 101-2024 大模型观点》中,Thoughtworks AI辅助研发工具与开源解决方案负责人黄峰达(Phodal)分析了2024年AI编程工具的进化路线。全文如下。
2024年AI编程工具的进化
文/黄峰达
与2023年相比,2024年AI在软件工程中的应用已经变得更加广泛和深入。这一趋势体现在AI编程工具的进化上,主要体现在以下几个方面:
全面探索:AI从辅助开发人员扩展到覆盖软件开发的整个生命周期,从需求分析到运维管理,每个阶段都显著提升了效率和质量。
演进路径:AI工具从个体使用扩展到团队和组织层面。个体使用的AI工具如AutoDev,团队助手如Haiven,以及组织层面的AI集成到内部IM和Chatbot系统中,全面增强了协作和效率。
形态变化:从本地AI IDE发展到领域特定的智能代码生成工具。智能云开发环境如Google的Project IDX等工具,使得未来的开发流程更加智能化和高效。
站在全球来看,在不同的国家、区域人们的关注点是不一样的,比如在中国,人们更关注于如何提高软件工程师的工作效率,而在其它一些区域,人们更关注于如何提高软件工程的质量、如何辅助进行遗留系统的迁移。除了各自所处的数字化阶段、水平不同,还存在一些技术人才数量、质量、分布等方面的差异。
全面探索:从辅助开发人员到全生命周期
AI技术已经从简单的辅助开发人员发展到涵盖软件开发的整个生命周期。在这一过程中,AI工具的应用范围不断扩展,从需求分析到运维管理,每个阶段都得到了显著提升。
从2022年GitHub Copilot的发布,我们可以看到越来越多的AI工具开始涉足到软件开发的不同阶段。比如,面向需求阶段的Jira/Atlassian Intelligence,面向原型设计的Vercel v0,面向编码阶段的GitHub Copilot,以及运维阶段的Dynatrace Davis AI等等。
就2023年的结论而言,基于人工智能的工具与基础大语言模型可以增强软件开发在设计、需求、测试、发布和运维等各个环节中的能力,提高质量和效率。但是,这些工具往往是破碎、割裂的,还可能并不适合我们现有的研发流程。
在市场上,我们也可以看到市面上的主流研发工具,如JetBrains、GitHub(网站)等,都在逐渐加入AI功能,使得AI功能逐渐融入到我们的日常工作中。
在IntelliJ IDEA中,我们可以看到AI功能的加入,如:原生的向量化模型、基于语义化搜索(SearchEverywhere)、结合补全统计的机器学习补全插件Machine Learning Code Completion、适用于单个代码行的Full Line Code Completion等等。
而除了GitHub Copilot工具本身,它还开放了其插件能力,使得我们可以定义自己的AI智能体,以适应我们自己的工作流程。
在多阶段协同方面,2024年有了更多的变化,比如在智能运维领域,AI可以结合判别性AI分析日志,生成式AI分析原因,再结合智能体根据运行错误,自动修代码复问题等;在测试领域,AI除了辅助进行测试用例的生成,还可以生成对应的单元测试代码,甚至是自动化测试代码;在UI设计领域,AI可以直接生成对应的代码,基于提示词来修改UI,所生成的是最终的UI代码,而不是设计稿。
诸如此类的变化,使得AI所能辅助的范围更加广泛,从而使得AI在软件工程中的应用更加全面。
演进路径:个体、团队、组织
从企业采用AI的路径来看,我们会发现:越来越多的组织开始探索在组织层面使用AI辅助整体软件研发。因而,AI辅助研发组织的技术蓝图便也逐渐清晰起来。
从形态上可以分为:带扩展能力的IDE插件、团队AI助手、结合AI的内部IM,以及作为基础能力的Chatbot。
AI编程工具应该怎么设计才能提效?在当前来说,国内的环境下,由于我们的目标是实现可见的效率提升,即要通过可度量的指标。因而,可以看到一些明显的变化:
- 代码补全与生成是最容易度量的指标,并且市面上也以此类为主。
- 在不同环节,从时间角度来计算,如代码审查、代码测试等。
- 结合代码的问答,以减少工具切换、复制粘贴,提高效率。
过去,AI编程工具主要针对的是个人开发者。但随着探索不断深入,我们发现,在结合团队或组织的力量后,AI编程工具出现了以下趋势:多样的AI工具正在融入自己的开发流程中;AI工具开始融入内部的一系列规范;不断结合内部知识库,提升内容生成的质量;开始构建自己的场景化能力。
故而,从个体到团队,再到组织,都在思考如何扩大AI的应用范围。
在设计团队AI助手时,我们需要考虑到团队的拓扑结构,以及团队的工作流程。在一个组织中,必然会有大量不同类型的团队,每个团队受限于业务盈利模式等因素,其采用的技术、工作流程等都会有所不同。比如,核心的业务部门可以享受自己特有的开发流程,而其它非核心部门则会采用一些标准化的流程。
考虑到盈利水平高的部门,通常是大型团队,他们不仅可能有自己的AI IDE插件,还会有自己的AI团队。因此,我们也建议设计一个可以让不同团队共享知识的AI团队助手。
回到整体组织层面,我们也会看到内部的IM工具也在融合AI功能,比如寻找负责人/专家、运维Chatbot辅助分析部署失败问题、CI/CD问题分析、AI会议创建与管理等等,以提升协作体验。
在另外一方面,我们也会有大量的其它Chatbot在不同的研发团队中使用,诸如于辅助平台的使用、文档查找等等。
形态变化:从本地AI IDE到领域特定的智能代码生成
与通用性的AI辅助相比,领域特定的AI辅助效果更好,因为它更了解领域的特点,更容易生成符合领域规范的代码。从智能代码生成的角度来看,由于过去包含大量的语料知识,生成的代码质量更高,更符合领域规范。
在前面,我们已经看到了AI辅助研发中心的概念,即在一个组织中,AI辅助研发中心可以为不同团队提供AI能力,以提升整体的研发效率。需要注意的是,AI在快速生成大量代码的同时,也会带来一些问题,如代码质量、安全性等。我们需要考虑如何在AI生成代码的同时,保证代码的质量。
生成式AI与低代码平台结合,可以在多个方面实现增强的生产力和创新。文本生成与聊天机器人、从PDF构建界面、工作流程自动生成、自助式分析都是经典场景。
此外,多模态AI代码的生成,诸如于Google的ScreenAI。它可以将图像和文本结合起来,生成对应的DSL,进而转换成不同的代码。
在云时代,大型组织构建了大量的云IDE和云基础设施,以尝试卖出更多的云服务以及解决最后一公里的部署问题。尽管,受限于云IDE能力、网络与计算能力,云IDE采用并不高,但是随着AI的发展,我们可以看到更多的智能云开发环境的出现。
我们非常看好诸如v0.dev这一类针对于领域特定的开发工具。它可以快速帮助我们构建出一个原型,然后再结合其它AI工具,如代码审查、代码测试等,可以大大提高我们的开发效率。
还有诸如Google Project IDX这一类AI辅助型工作区。IDX支持众多框架、语言和服务,还与Google产品集成,可简化开发工作流程,让开发者可以快速、轻松、高效地跨平台构建和发布应用。尽管IDX还非常早期,但是我们可以看到,未来的云IDE将会更加智能化,更加适应我们的工作流程。在国内,我们也可以看到Babel Cloud、MarsCode等一系列云IDE工具,也在不断的发展中。
作者简介:
黄峰达(Phodal)
Thoughtworks AI辅助研发工具与开源解决方案负责人,开源Unit Mesh AI辅助研发方案的发起人,包含AI IDE插件AutoDev等工具;智能体编程语言Shire的创始人,架构治理平台ArchGuard的核心开发者。他在生成式AI辅助需求分析、开发和质量保障方面为多家金融和互联网企业提供落地支持,著有《前端架构:从入门到微前端》《自己动手设计物联网》等多本书籍。
《2024 中国开源开发者报告》由开源中国 OSCHINA、Gitee 与 Gitee AI 联合出品,聚焦 AI 大模型领域,对过去一年的技术演进动态、技术趋势、以及开源开发者生态数据进行多方位的总结和梳理。
报告整体分为三章:
- 中国开源开发者生态数据
- TOP 101-2024 大模型观点
- 国产 GenAI 生态高亮瞬间
查看完整报告,请点击 :2024 中国开源开发者报告.pd