就像聊天一样,在编码软件的对话窗口输入“帮我用python写一个飞机游戏”。短短几秒后,100多行代码就自动生成了。点击运行后,“飞机大战”游戏就活灵活现地跑起来了。

不用手工编码,AI编码助手或者AI代码生成器就能按照你的要求,自动生成代码。在杭州的云栖大会上,阿里云的“通义灵码”展示了AI辅助编码的神奇能力。11月12日,阿里云AI辅助编码的最新成果——通义千问Qwen2.5-Coder宣布开源,面向全球用户开放。

最近谷歌CEO Sundar Pichai就曾透露,AI生成了这家科技公司超过1/4的新代码。谷歌成为“吃螃蟹者”,首先让AI编码助手为我所用,生产了意想不到的效益。

现在,AI编码助手的商用产品不断增加,商业化征程已经开启。让软件开发更便宜,让程序员更“廉价”,让每一个人都成为开发者变得不再遥远。

打开网易新闻 查看精彩图片

AI大模型颠覆低代码/无代码格局

前几年,面对企业程序员短缺和企业应用开发需求不断增加的现实,低代码/无代码软件工具风靡一时,成为行业发展的“风口”,其目标就是让企业的每一个业务人员都成为程序员。传统上低代码/无代码工具专注于构建应用程序和网站。

而生成式AI的突然爆发,则颠覆了低代码/无代码的格局。在生成式AI的发展的初期,辅助编码就是ChatGPT等自然语言大模型(LLM)最基本的应用之一,其目标就是简化编码流程,自动执行日常任务,甚至预测和建议代码片段。而AI大模型能够构建应用程序的所有任务只是一个时间问题。

因此,在目前AI辅助编码方面,出现了两大发展方向:

一是AI编码助手或者AI代码生成器大量涌现。

随着全球范围的大模型的不断增长,通过自然语言交互实现AI辅助编码的工具如雨后春笋般涌现。如微软旗下的GitHub与OpenAI合作推出的GitHub Copilot,阿里云的AI编码助手通义灵码,百度推出的基于文心大模型智能编码助手Comate,亚马逊云科技出品的CodeWhispere等。

阿里云既有自己的AI编码助手商业产品通义灵码,也开源其AI编码工具,在行业内独树一。

10月31日,阿里云发布智能编码助手“通义灵码”,面向所有开发者开放公测,各大IDE插件市场均已上线,开发者下载后即可体验。通义灵码基于海量开源代码数据集和编程教科书训练,可根据当前代码文件及跨文件的上下文,自动生成行级/函数级代码、代码注释,以及代码解释、智能研发问答、异常报错排查等能力,并针对阿里云SDK/OpenAPI使用场景调优,为开发者带来高效、流畅的编码体验。

相较于人工编写测试耗时数分到数十分钟,灵码能以毫秒级的速度生成测试代码,准确率和覆盖率都令人满意。

兼容性方面,通义灵码支持JetBrains全家桶和Visual Studio Code,支持Java、Python、JavaScript、TypeScript、C/C++等30多种主流编程语言,可自动识别编程语言并生成代码解释。

11月12日,阿里云千问团队再进一步,开源Qwen2.5-Coder全系列模型,致力于持续推动 开源大模型智能编码的发展。截至目前Qwen2.5-Coder已经覆盖了主流的六个模型尺寸——1.5B/7B /0.5B/3B/14B/32B,以满足不同开发者的需要。

其中旗舰Qwen2.5-Coder-32B-Instruct成为开源代码模型,代码能力追平OpenAI公司GPT-4o,在多个流行的代码生成基准EvalPlus、LiveCodeBench、BigCodeBench等上都取得了开源模型中的最佳成绩。

因为使用自然语言提示编写高质量代码的能力而受到高度青睐的GitHub Copilot堪称AI编码的“灯塔”。根据Stack Overflow 2023调查,超过50%的开发人员更喜欢GitHub Copilot,1/3的财富500强公司和全球超过5万家企业都在使用它。

GitHub Copilot支持广泛的编程语言,包括Python、JavaScript、C++和TypeScript,并与Visual Studio Code和JetBrains等流行的IDE无缝集成。

在功能上,GitHub Copilot不仅可以自动执行样板代码,而且还可以为代码完成、调试和发现潜在安全风险提供建议,对于学习新的编程语言和提高生产力特别有用。当然,GitHub Copilot不是免费的。

Mistral AI专为全球开发人员的代码生成任务而构建最新型大模型。作为OpenAI的主要对手,Mistral AI今年7月发布其专为全球开发人员的代码生成任务而构建的最新型号Codestral Mamba 7B。Codestral Mamba也支持多种编程语言,可以在不同的编码环境和项目中使用。

与传统的Transformer模型不同,Codestral Mamba拥有高效的线性时间推理,提供了处理无限长度序列的理论能力,无论输入内容的大小,都能确保快速响应,有助于开发人员与模型快速进行交互,提高代码的生产力。

与云服务结合,为用户提供AI代码开发,亚马逊云科技一直走在最前沿。其CodeWhisperer是一款由机器学习提供支持的AI编码助手,支持多种IDE和编程语言,提供实时、全面的代码建议,可通过生成高质量代码来提高开发人员的工作效率。

CodeWhisper使用来自公共代码存储库的数十亿行代码进行训练,可以提出与用户的编码风格和约定相匹配的整个函数或逻辑块,还提供注释补全以加快文档编制速度。与他的工具相比,CodeWhisperer特别擅长识别和建议错误修复,确保代码的准确性和安全性。

最近,Amazon CodeWhisperer已转变为具有扩展功能和能力的“Q Developer”。不同的是,Amazon CodeWhisperer对个人是免费的。

二是传统的低代码/无代码工具,大量引入AI辅助功能。

例如低代码应用开发旗舰公司公司OutSystems 就通过推出一款名为 Mentor的新型生成式AI驱动的“数字工作者”,以改变整个软件开发生命周期。

SaaS领头羊Salesforce推出了一套低代码工具Einstein 1 Studio jbngfahq.cn,允许开发人员和管理员自定义公司的人工智能助手Einstein Copilot,并将其嵌入到任何客户管理应用程序或AI体验中。

无代码平台开发商Creatio在其自然语言提示驱动的平台中集成了代理、生成和规范性人工智能功能,提高无代码开发效率。6月Creatio筹集了2亿美元的资金,计划将其支持的大模型从最初的OpenAI,扩大到增加Google Gemini和Anthropic Claude等。

目前,大量的低代码/无代码公司募资,应用GenAI,提高代码生成的体验。

200多家公司热衷AI编码工具

根据PitchBook的数据,全球大约有250家初创公司推出了AI编码助手,领先的科技公司如微软、谷歌、AWS、阿里、百度等走在前列。

根据GitHub的一项调查,超过97%的人表示在工作中使用AI编码助手。微软旗下的GitHub Copilot目前拥有200万付费用户。

打开网易新闻 查看精彩图片

AI编码助手 or AI代码生成器?

简单来说,AI编码助手是一种AI自然语言大模型驱动的工具,旨在帮助用户编写、审查、调试和优化代码。AI编码助手有助于减少程序员重复性工作,节省时间,并使开发人员能够专注于解决复杂问题。随着AI模型的不断改进,这些助手有望随着时间的推移变得更加智能。

面对日益增加的产品和不断扩大的应用,目前市场上有多种提法,主要是AI编码助手 or AI代码生成器两种。两种提法有什么区别吗?

AI代码生成器主要侧重于根据提示创建代码行或代码块。AI代码助手主要提供实时建议、代码解释,并帮助开发人员完成编码过程。两种提法的差别不大,正不断走向融合。

AI编码助手提供了许多功能

AI编码助手功能丰富,为编程带来极大便利。其代码建议功能,可以预测和建议下一行代码,或者根据已经编写的内容的上下文提供代码。而自然语言查询是程序员用日常语言询问特定功能实现方法,即可获得代码片段或解释。在重构方面,它能给出建议甚至直接助力,提升代码可维护性与结构。

代码审查时,可发现潜在问题、偏差,提出改进建议。代码优化上,能针对片段提供提高性能或内存使用率的建议。对于错误检测,能找出人工审查易忽视的问题。

此外,文档协助可保证文档随代码更改而更新。学习和教程方面能个性化学习体验,实时反馈指导编码。大多数AI编码助手能与多种开发环境集成,包括Python IDE和VSCode等,保障无缝开发流程。

最突出的成效是提高工作效率和代码质量。

GitHub研究表明,使用AI编码助手GitHub Copilot的开发人员的工作效率提高了55%。一项分析来自微软、Accenture等的研究发现,生成式AI代码助手可以将软件开发人员的工作效率提高26%。

生成式AI代码助手另一大成效是改进了代码质量。一项对美国、中国、印度 、巴西和德国等调查发现,一半以上受访者表示,使用AI编码助手编写的代码质量明显提高。同时借助AI代码助手,可以更轻松地使用新的编程语言,并理解现有代码库。

调查发现,科技巨头依靠使用AI编码工具的开发人员来提高其平台的吸引力,而非科技公司的领导者则使用AI编码助手推动数字化转型。

在AI技术的浪潮下,代码就像是拥有神奇魔力的“饲料”,被“喂”给不同的人群,进而发挥出各自独特的作用。无论是经验丰富的开发者、初出茅庐的编程新手,还是其他相关领域的从业者,都从AI编码助手中汲取到了属于自己的“养分”。

打开网易新闻 查看精彩图片

生成“坏代码”,AI 编码助手也有局限性

许多AI编码助手都是用别人的代码训练的。正如大家可能不能猜到的那样,这些AI代码助手生成的代码可能质量很高,帮助你解决问题;也可能很糟,让你后边的工作很难开展。

Evans Data的一项调查发现,35%的编码人员表示,AI编码助手主要生成基本代码,仅为他们节省了10%到20% 的时间。

GitClear的一项研究显示,过去一年软件代码质量下降,可能是由于使用了AI模型。此外,Synk的一项调查报告称,超过一半的组织已经发现了AI生成的代码存在安全问题。

因此AI编码助手并不全是节省时间和性能提升!了解其局限性也非常重要。

AI在编程中的主要限制之一是生成缺乏准确性的不良或低效代码的风险。当然,AI助手可以快速编写代码,但有时会生成未优化或过于复杂的解决方案,尤其是AI大模型缺乏足够的训练数据或遇到超出其训练范围的场景情况。AI可能会从其训练数据中养成坏习惯。

安全风险是另一个大问题,因为进入AI编程世界时最大的考虑因素之一是潜在的安全风险。如AI生成的代码可能会无意中包含漏洞或产生了漏洞,尤其是当AI在包含不安全编码实践的数据集上进行训练时。

还有一种风险是AI编码助手以你不同意的方式使用用户的专有代码,尤其是在您没有阅读细则或检查设置的情况下。因此,您需要格外警惕,以确保对AI的使用不会损害应用程序的安全性。

当然,缺乏创新解决方案可能是大家诟病的另一个方面。AI编码助手本质上仅限于在训练期间接触到的创新水平,可能导致编程中缺乏创新的解决方案。AI编码助手缺乏人类程序员的创造力或新颖的方法。

同样,AI编码助手缺乏对上下文和细微差别的理解。像ChatGPT和Google Bard这样的AI工具往往难以理解项目的更广泛背景和细微差别。特别是,当需要了解用户需求、业务目标或实施独特的问题解决方式时,AI的局限性非常明显。

显然AI系统本身需要维护和监督,这些任务只能由熟练的人类程序员执行。无论是更新算法,还是确保合乎道德地使用AI,人工监督对于有效管理和指导AI系统都至关重要。

AI辅助编码从根本上改变就业市场。

AI辅助编码能得到快速应用,主要原因是投入产出比得到了显著改善。许多商用的AI编码助手都会向开发人员收费。目前看到的最高收费是每位用户每年收费69至99美元。另外,还有不少的开源的工具,通常免费使用的,因此无需直接成本即可访问。

与开发人员的工资相比,这笔投资相对较小。在美国,软件开发人员的年收入在4万美元到15万美元之间,具体取决于经验和专业。在中国,全职开发人员的年薪从20万到80万不等,主要取决于经验。

投资于这些工具可以显著提高生产率,从而迅速抵消其成本。投资开发人员工具的经济理由很强,相对于它们提供的潜在生产力提升和软件质量的改进,成本较低。

AI辅助编码工具将使更多人能够在没有传统编码技能的情况下创建软件方案,从而从根本上改变就业市场。随着AI编码助手继续简化编码流程,人们可以预期软件开发将变得更便宜,程序员的就业市场将不断发展,从而为人才创造一个更容易获得的环境。此外,使用AI编码助手有助于弥合初级和高级开发人员之间的经验差距。

你不会被AI取代,但会被使用AI 编码的孩子超越。

AI编码助手让每个人都成为开发人员,真是太疯狂了。所以人们最关心的一个问题是AI会取代程序员吗?

OpenAI CEO Sam Altman表示,AI编码助手只会是一种补充,没有人会被取代。高贵的程序员在AI世界中会越来越廉价,但依然拥有用武之地。

AI编码助手不会取代程序员,但开发人员需要与之协调合作。对程序员而言,AI编码助手不仅仅是一个工具,更是一个合作伙伴。使用AI编码助手来提高生产力,并腾出时间应对超出AI范围的复杂编程挑战。

再说一遍,AI不会取代程序员,但是不会应用AI工具的程序员,不管是在编码质量,还是编码效率方面,都会轻易被使用AI编码的“孩子”超越。人工智能的民主化也意味着程序员需要努力发展技能,以保持竞争力。

LLM使用大量人工编写的代码进行训练,可以更快地生成代码,从而有可能取代入门级程序员的工作。低级编码任务的价值已经降低,因为LLM可以轻松生成代码。程序员和工程师必须拥有两个重要的价值主张,复杂系统工程的能力和利用LLM快速创建数字资产的能力。