作者 | 常棣
编辑 | 葛覃
互联网时代,Marc Andreessen一句论断广为流传:Software is eating the world(软件正在吞噬世界)。而现在,或许应该再缀上一句:AI is eating the software(人工智能正在吞噬软件)。
软件开发从业者是最先感受到风向的一批人。如今一个程序员的编程日常可能是这样的:
坐在工位打开电脑,查看AI给出昨天代码的审查建议,一部分“编程”工作直接用自然语音描述,输入提示词并审核,再编辑生成的代码,一部分工作是“半编程”,写出想要的第一个代码块,并加以注释让大模型知道想要的是什么,然后按Tab键补全代码。
市面上不乏各种AI编程产品,以至于显得有点过剩。海外市场包括GitHub、Anysphere、Cognition等纷纷推出自己的AI编程产品,自去年2月以来,已有8家AI编程初创公司拿下了22亿美元融资。
国内市场同样火热,无论巨头还是初创,都拿出了自己的看家本领。Gartner数据显示,超过一半的组织目前正在试点或已经部署了AI编程助手,到2028年,75%的程序员将以某种形式使用AI编程工具。
毫无疑问,大模型掀起了软件开发领域的效率革命,问题是,我们该以什么姿势拥抱它?
大模型,将软件工程送入3.0时代软件工程从 1.0 到 3.0 时代,经历了从手工编码到 AI 驱动、从单机应用到云原生、从线性开发到迭代开发的重大转变。
早期的软件开发人员主要依靠手动编写代码,使用传统的编程语言如 C、C++,软件主要运行在单机环境下,功能相对简单。随着时间的推移,集成开发环境(IDE)和版本控制工具等产品也开始出现。
到了软件工程的2.0时代,面向对象编程(OOP)成为主流的开发方法,软件开始向网络化方向发展,Java 的 Spring 框架、.NET 框架等流行起来,提高了软件的可维护性和可扩展性,开发人员可以通过封装、继承和多态等特性,更好地组织和管理代码。
同济大学特聘教授朱少民此前表示,如果1.0时代的软件形态是一种类似于office的产品,2.0时代的软件形态是一种能够支持持续构建、持续交付的云服务,那么3.0时代软件是作为一种模型存在的,即软件即模型,开启软件开发新范式。
AI可以自动生成代码、辅助代码审查、进行智能测试等,大大减轻了开发者的工作量。以至于行业甚至出现一些悲观言论。
Stability AI 创始人兼 CEO Emad Mostaque说:“五年内,人类程序员将彻底消失。”
Fixie 联合创始人兼 CEO、前谷歌 Chrome 移动团队工程总监 Matt Welsh也表示:“程序员这个工作或许在三五年内不复存在,甚至编程这个学科都会被终结。”
实际上,大模型虽然很大程度上冲击了现有的软件开发体系,但不必过分担忧,历次新技术变革都会带来生产力的极大进步,从而改变原有的生产关系,以软件开发为核心竞争力的研发人员和科技公司不会被取代,只是需要与时俱进。
华为是一家典型的与时俱进的科技公司,从通信基站到手机终端,从云平台到大模型,其软件开发能力始终向前迭代,如今华为正在将AI编程能力对外输出到有需要的地方。在近日举办的华为全联接大会2024期间,华为云发布了基于盘古大模型、昇腾AI云服务等全栈AI能力升级的CodeArts盘古助手,具备重塑软件开发的智能化能力,带来了覆盖软件开发全生命周期的服务。
对于企业不知如何落地智能开发的现状,华为云还联合中国信息通信研究院发布《智能化软件开发落地实践指南》,为AI技术赋能智能化软件开发提供了有力的参考和借鉴。
“AI编程”,不能只做编程和通常认知不同的是,程序员的大多数时间并不是都在写代码。一般来说,在软件开发的整体过程中,编码工作可能在30-40%,需求沟通、方案沟通、系统设计等环节占比30%左右,品控、测试、软件发布等占30%左右。
因此,大模型如果仅仅用在编程环节,显然不能最大化提升开发效率,重点是将AI技术融入软件开发的全生命周期,并辅以一系列的智能化工具和平台,将理念落地成现实。
华为云CodeArts是云上一站式软件开发平台,汇集了华为30多年的研发实践和研发理念,提供需求管理Req、代码检查Check、测试管理TestPlan、代码托管(CodeArts Repo)等近30款自主创新的软件工具服务,覆盖需求、设计、开发、测试、部署、运维等软件开发全生命周期环节,打造全云化的软件开发环境。
基于CodeArts和盘古大模型等技术,此次推出的CodeArts盘古助手可提供智能生成、智能问答、智能协同三大核心能力,覆盖代码生成、研发知识问答、单元测试用例生成、代码解释、代码注释、代码翻译、代码调试、代码检查等八大研发场景。
在智能生成方面,过去要写一段函数代码,开发者需要搜索已有代码、查阅技术文档获取代码灵感。现在通过CodeArts盘古助手根据自然语言(如将需求单的业务描述复制粘贴),就可以根据业务逻辑整理一键生成一段完整的函数代码逻辑,大幅度提升编码效率。
测试也变得更快更便捷,基于千万级代码与单元测试用例对数据训练,CodeArts盘古助手可以一键生成单元测试用例,快速捕捉逻辑错误,减少代码错误和漏洞,降低代码维护和升级成本。
再如智能问答,当遇到技术问题,开发者往往需要查找技术文档、研发资料,在开发者论坛查询和搜索,还不容易定位到具体问题。
CodeArts盘古助手基于千万级研发书籍、技术博客和产品文档等高质量数据训练,支持通过交互精准获取200+华为云服务技术支持和通用研发技术知识,可以一键生成代码实现的功能、调用、使用方法等解释出来,一键分析代码错误,给出修复结果推荐,有效降低代码阅读理解成本和提升代码修复效率。
软件开发,背后是全栈能力时至今日,没有人再质疑“软件吞噬世界”,软件已经融入到日常生活工作的方方面面,而“AI吞噬软件”的势能只会更大,在此之前,首先要确保AI编程本身的安全性,诸如数据安全、模型安全、法律合规等因素。
大模型赋能软件开发的趋势不可阻挡,风险总是伴随着新技术而来,在推广新技术的过程中,将潜在风险前置考虑并加以解决,企业和个体才能更好地发挥技术价值。
和大多数AI开发助手不同,CodeArts盘古助手基于华为云自研昇腾AI云服务和盘古大模型,提供强大、可靠的AI算力,软硬件方面实现自主创新,能够减少外部的依赖。
CodeArts盘古助手还结合了API知识图谱、知识库检索、以及本地IDE前处理等技术,让大模型更容易理解用户输入的信息。同时,利用软件分析获取依赖信息和对象初始化信息,可以有效减少模型的代码幻觉,单元测试用例生成的可编译率超过90%。
数据也是重中之重,高质量的研发数据才能训练出高质量的模型,基于盘古研发大模型已学习的1300多万篇经典的技术文档、8500多万个开源代码仓和760亿行精选代码,CodeArts盘古助手可以实现一句对话让代码生成、一次点击即可自动注释和生成测试用例,一条指令即可智能部署,使得开发者事半功倍。
目前 CodeArts 盘古助手已在金融、汽车、教育、制造等众多行业场景中成功实践,帮助企业加速构建现代化应用。中国邮政储蓄银行通过使用华为云CodeArts盘古助手打造智能开发平台,代码生成采纳率超30%,单元测试代码采纳率超60%,已自动生成29万余行高质量代码,高效支持超过200个应用系统的开发,实现了更好的智能化开发体验。
我们这一代人,可能是历史进程中最后一批大规模会写代码的人,在大模型的加持下,我们也可能是最先享受AI软件时代红利的人。