生成式人工智能(GenAI)会改变每个行业,软件开发行业首当其冲!
目前, LP的、 LLC的Bard、阿里云的通义千问、百度的文心一言等大模型和生成式人工智能工具正成为科技领域名副其实的明星!
目前,大模型最突出的早期用途之一是帮助软件开发人员编写代码,解放软件开发生产力!
目前,市场上出现了基于大模型的软件编码辅助工具,国外的有公司的 编码助手、亚马逊云科技的Code ,推出的 for ;国内有阿里云刚刚推出的智能编码助手——通义灵码等。
这些辅助工具,在帮助程序员加快开发速度、提高编码质量,以及解决应用开发人员短缺等问题同时,正在引发软件开发的一场革命。
观察:解放软件开发生产力!
01
程序员越来越接受开发AI辅助工具
Stack 在今年6月份发布了一项针对90,000多名开发人员的调查。结果显示,近44%的人在工作中使用了AI工具,还有26%的人愿意很快使用它。
在使用AI工具的人群中,超过82%的受访者表示使用这些工具来生成代码,48%的人使用这种工具进行代码调试和获取帮助,30%的受访者表示学习特定的代码库。
在Stack 调查中,约37%的专业编码人员受访者表示,采用AI工具编码的好处分别是:提高生产力,占到42%;而仅仅提高效率占27%;提高学习速度占27%。
虽然获得的好处包括学习编码、提高效率等,但提高生产力,解决应用开发中的问题是所有类型的开发人员认可的最主要的好处。
LLC云部门10月发布的《2023年加速状态报告》显示,随着人工智能工具被整合到开发人员的工具集中,似乎只能略微改善开发人员个人幸福感,例如倦怠和工作满意度,但对团队层面的结果(如整体团队绩效和软件交付指标)产生了中性甚至负面影响。
02
两种类型的AI辅助编码工具功效各不相同
软件开发中的AI辅助编码工具有两种主要模式:
一种是通过自然语言,由大模型支持的聊天机器人生成代码片段。目前几乎所有的大模型如、Meta的Code Llama等所支持的聊天机器人,都可以通过自然语言交互方式,生成代码片段、整个函数或众所周知的编码语言的代码,或者检查代码是否存在错误或改进代码。
需要说明的是,使用和其他聊天机器人进行编码,需要一些历史记录或上下文信息才能正常工作。因此需要建立关于特定项目的对话线程。从本质上讲,要使用它,开发人员必须通过提示正在处理的代码与该工具建立融洽的关系,直到大模型理解项目,然后在一段时间后才开始提供更好的响应。
另一种是编码助手 或者Code ,在开发人员编写时提供暗示性代码,它们能够根据以前的代码,预测接下来会发生什么,来填充大量代码,辅助开发人员的工作。
等工具提供了与聊天机器人完全不同的体验,也可以让人们成为更好的程序员。它迫使你编写更好的代码,即使你没有编写大部分代码。
现在,这样的AI辅助代码助手越来越多。相信应用效果会越来越好。
03
负面影响就是会产生错误,小错可能酿成大祸
不管是哪种应用模式,这些AI辅助开发工具看起来非常有用,也许对开发人员工作流程非常有益,但它们也可能是问题的根源。
例如,大型语言模型可能会产生错误信息或“幻觉”,这意味着它们会不时产生有问题的代码。
在使用聊天机器人等工具时,产生的大多数错误可能会被编译器或查看一般工作活动的资深编码人员捕获。
同时,代码建议AI也会产生类似的问题,这可能会导致花费一点时间试图弄清楚事后发生了什么。
如何解决这些问题,目前好像除了靠人外,还没有别的解决办法。
最终,AI编码工具和助手应该被视为工具和助手。归根结底,编码程序员仍然是责任方,需要学习技艺并花时间与代码打交道,否则会酿成大患。
会自动写代码的AI大模型用起来
介绍目前市场上流行的AI大模型辅助编码工具,供大家学习。
01
亚马逊云科技:实时AI编程助手 ,免费提供给所有开发人员使用
在今年4月18日,亚马逊云科技宣布,实时AI编程助手 正式可用,同时推出的还有供所有开发人员免费使用的个人版—— 。
经过数十亿行代码的训练,可以根据用户的指令和现有代码,实时生成从代码片段到全函数的代码建议。
可以帮助开发者基于注释生成代码,追踪开源参考,扫描查找漏洞。
这些功能确保了开发人员可以专注于敏捷开发,不会由于搜索示例代码等工作而打断思绪。在创建复杂代码和面对不断变化的开发环境时,开发人员可以在自己喜欢的集成开发环境(IDE)如 Code、 IDEA及其他IDE中,使用,从而提高工作效率,简化工作任务。
的特点鲜明:
第一,在成本上,所有的开发人员都可以免费使用。所有开发人员(不仅仅是拥有亚马逊云服务账户或使用亚马逊云服务的人),只需一个电子邮箱地址即可注册。
第二,在效果上,为用户量身定制的实时AI代码生成器,提高工作效率。在预览期间,举办了一场工作效率挑战赛,使用 的参与者成功完成任务的可能性要比未使用的参与者高27%,平均完成任务的速度快57%。
对开发环境上,支持热门编程语言和IDE。 支持开发语言有:、Java、Java、Type、C#、Go、Rust、PHP、Ruby、、C、C++、Shell 脚本、SQL和Scala等开发语言;支持的IDE有 Code、 IDEA 等。
在使用上,可以提出优质建议。是唯一具备该功能的编程助手,包括可以帮助程序员过滤有偏见或不公正的代码建议,提高代码的安全性和准确性。
第五,在安全上,内置安全扫描。可以对开发人员编写的代码进行安全扫描,找到并建议修复难以检测的漏洞。如十大开放式Web应用程序安全项目(OWASP)中的漏洞以及不符合加密库最佳实践的漏洞等。如果发现了漏洞,它会提供解决问题的建议。
02
: for 上线!Apex GPT自动生成代码
Apex GPT展示了开发人员如何利用自然语言处理来增强代码编写能力。今年9月,这一功能就进入公开测试阶段。
为此,甚至提出了一个问题:未来还需要程序员吗?
的编码工具名为 for ,通过创建基于自然语言提示的智能Apex来简化开发。
for 是一款专门为特定编码语言构建的生成式AI编码工具。它使用的开源大型语言模型 (LLM) 构建,将简单的英语提示转换为可执行代码。您不需要自己编写任何代码,用自然语言描述代码应该做什么,然后AI为您编写。
与其他AI编码工具不同, for 直接内置于平台中。这意味着可以访问组织的元数据,并根据现有代码提出建议。它还利用AI Trust Layer,确保代码的安全性。
for 通过创建基于自然语言提示的智能Apex来简化开发。
代码生成(Code )是一种用于简化或自动化代码编写过程的技术。本质上,它涉及使用机器学习(ML)算法来分析现有代码,然后基于该分析生成新代码。
这对于重复性任务特别有用,例如创建样板代码或实现常用算法。代码生成的好处之一就是可以为开发人员节省大量时间。开发人员可以使用AI工具自动生成大部分代码,而不是从头开始编写,不仅加快了开发过程,还降低了人为错误的风险。
代码生成的好处还包括:
保证一致性和标准化,自动创建重复代码元素有助于确保代码库的一致性和标准化;
快速原型开发,代码生成可以通过快速创建样板代码来加速原型开发过程;
降低代码复杂性;代码生成通过自动创建通用模式和结构来简化代码,使代码库更具可扩展性且更易于维护。
另外借助 for ,开发人员可以在集成开发环境中扫描代码漏洞并获得实时代码建议,从而加快编码任务。
03
阿里云:智能编码助手通义灵码,会自动写代码的AI大模型来了!
用大模型写代码是什么样的体验?10月31日阿里云对外展示了一款可自动编写代码的AI助手。目前,通义灵码已面向所有开发者开放公测,各大IDE插件市场均已上线,广大开发者下载后即可体验。
通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代码数据集和编程教科书训练,可根据当前代码文件及跨文件的上下文,自动生成行级/函数级代码、单元测试、代码注释等。
此外通义灵码还具备代码解释、智能研发问答、异常报错排查等能力,并针对阿里云 SDK/ 使用场景调优,为开发者带来高效、流畅的编码体验。
基于阿里云强大的大模型能力和智能算力,灵码在5个月内快速迭代了多个版本,并在上市之前进行了充分打磨,目前已在阿里云内大规模应用。
灵码的特点包括:
速度快,相较于人工编写测试耗时数分到数十分钟,灵码能以毫秒级的速度,生成测试代码,准确率和覆盖率都令人满意。
兼容性方面,灵码支持全家桶和 Code,支持Java、、Java、Type、C/C++等30多种主流编程语言,可自动识别编程语言并生成代码解释。
此外,灵码还打通了阿里云开发工具和云资源的使用场景,如在云效平台上,就提供了代码智能化评审和软件构建问题智能排查能力。
未来,基于持续迭代的通义大模型,灵码还将不断提升开发者体验和研发效率。
04
微软:旗下推出 X
因为是的大股东,微软更是接二连三地宣布将的大模型GPT-4应用到Bing搜索引擎、Edge浏览器、全家桶中。
3月其旗下代码托管平台发布重磅“炸弹”,推出 X。
早在2021年微软和合作开发了一个面向程序员的生产力提升工具。
随着的GPT-4模型的发布,紧接着就发布了新版本的 X,这是世界上第一个使用的Codex模型(GPT-3 的后代)制作的大规模生成式 AI 开发工具。 X 的AI模型采用的是最新 GPT-4。
借助 ,开发人员在软件史上首次可以广泛利用AI来编写和完成代码。就像编译器和开源的兴起一样,我们相信人工智能辅助编码将从根本上改变软件开发的本质,为开发人员提供一种新工具,让他们更轻松、更快速地编写代码,从而让他们的生活更快乐。
其特点包括:
X致力于改进开发者体验,将提供聊天和语音界面,支持拉取请求,回答文档问题,并通过 GPT-4实现更个性化的开发者体验。
使用 X,可以解释代码的用途,还可以在遇到bugs时让 X 尝试去修复它,甚至还可以顺带生成单元测试。
用户可以在使用 Code、 、Vim或集成开发环境时,通过自动补全代码,主要面向 、Java、Type、Ruby和Go等编程语言。可以协助程序员完成自动补全代码块或方法或函数,以及消除重复代码,甚至根据代码注释生成可运行代码。
正式发布后吸引了众多开发者使用。根据的数据,已参与到微软全体云代码仓库中的46%,帮助开发人员将编程速度提高了55%。
的研究还表明,使用 的开发人员中有90%表示可以更快地完成任务,其中73%的开发人员能够更好地保持顺畅并节省精力,高达75%的开发人员感到更有成就感,并且能够专注于更令人满意的工作。
参考资料:
·
·
·
·
·
·