这很有未来感,想要什么程序,机器帮你写。但是实际上,它只能生成网页 UI(用户界面),无法生成互动脚本,并且其他的 UI(比如手机 App 页面),它都无法生成。

这反映了 AI 的局限, 至少现阶段,AI 无法取代程序员,只能充当编程助手。

根据我的使用体会,作为编程助手,AI 的作用非常大,能够大大节约程序员的时间,显著提高编程效率和代码质量。

今天,我就来测评两款 AI 编程助手,看看孰强孰弱,顺便也作为一个入门教程,向还没用过的同学,展示它们的用法。

大家看了以后,就能明白,为什么编程已经离不开 AI 了,它真的能让程序员如虎添翼。

二、GitHub Copilot 和豆包 MarsCode 简介

我要测评(或者说介绍)的两款 AI 编程助手,分别是 GitHub Copilot 豆包 MarsCode

GitHub Copilot 是最早出现的 AI 编程助手,也是市场占有率和知名度最高的一个。

它是微软出品,底层是 OpenAI,又依托着世界最大的程序员社区,自然是实力非凡。

豆包 MarsCode 是基于豆包大模型打造的智能开发工具。

它的背后是字节跳动,本来是内部工具,据说字节超过70%的工程师都在用,每月贡献百万行量级的代码。

6月26日,它正式在北京对外发布,外界可以免费使用,属于新鲜出炉。

它们都来自大厂,有足够的代表性,而且功能相近,下面就来看看,国产 AI 能否替代国外主流产品。

三、使用环境

AI 编程助手一般不单独使用,而是作为 IDE(集成开发环境)的插件,在编辑器界面提供各种 AI 功能。

我选择的 IDE 是目前最流行的 VS Code。此外,豆包 MarsCode 还支持 Jetbrains IDE,Copilot 则支持更多。

大家在 VS Code 插件市场搜索 Copilot 和 MarsCode,就能找到它们。下面是安装后的页面。(上图为 Copilot,下图为豆包 MarsCode,后面都是这个顺序。)

使用很简单, 只要有按键输入,它就会自动建议后面的代码是什么

你可以将其当作参考,也可以按下 Tab 键,接受它为正式代码。如果想逐个单词确认,按下 Ctrl + 右箭头(Mac 为 Cmd + 右箭头)。

我让 AI 生成一个检验电话号码的函数。

上面的代码,除了第一行"// 验证电话号码"是我输入的,后面都是 AI 生成的。

这段代码完全正确,并且还有两个地方令人很满意。(1)因为文件的后缀名是 JS,所以它们自动生成的是 JavaScript 代码;(2)它们验证的是中国的手机号码,而我并没有明确给出这一点,它们是自己推断的。

有点奇怪的是,Copilot 和豆包 MarsCode 给出的代码是一样的。莫非它们使用同样的材料训练?

我又加了一个条件,要求包括手机和座机两种情况。它们给出的代码还是(基本)一样。

打开以后,它就会加强代码预测。首先,在期望触发代码推荐的地方,按下 Ctrl + Shift + Enter 主动触发推荐,然后你按下 Tab 采纳。

这时,它会预测下一个改动点,点击 Tab 就可以跳转到那里。这在代码修改的场景中非常有用,修改了一个地方,它帮你跳到下一个(预测的)改动点,并给出推荐代码。普通的代码补全做不到这一点。

六、生成注释,代码解释

除了生成代码,AI 的另一个重要作用,就是生成编程文档,也就是代码的文字说明。

文档功能主要有两种:注释和代码解释。首先,Copilot 的注释需要自己手动生成。

豆包 MarsCode 则在代码上方有生成注释的快捷按钮。

点击后会唤起 /doc 命令,用起来相对方便一点。

至于代码解释功能,我觉得相比之下,豆包 MarsCode 更好一些,Copilot 太冗长了,有点不易读。

经过上面的一系列测试,两者的表现总体相差不大。我认为, 国产 AI 编程助手完全可以替代 GitHub Copilot ,而且在某些细节上做得更好。

GitHub Copilot 的优势在于 功能较多 (比如调用终端命令),而且它的训练材料可能比较多,在一些小众语言上也许表现更好一点。

但是,它是收费的,每月10美元,而 豆包 MarsCode 是免费的 ,单单这一点就值得推荐后者。

目前, 豆包 MarsCode 只是一个初期的版本,后面会不断增加功能。但是,对于大多数程序员,现有功能已经完全够用了。

另外,我在使用中明显感到,豆包 MarsCode 的响应速度更快,毕竟服务器是在国内。相比 Copilot 的境外服务器,这也是一个优势。

总之, 豆包 MarsCode 值得大家试用,体验一下国产 AI 的进步。如果你从来没接触过 AI 编程助手,就更不应该错过这种提高效率的编程神器了。

有学生包的话,还是copilot吧,copilot可以综合整个workspace来给你提供建议,而且人家训练的数据来自最大的代码托管平台GitHub,再加上先进的GPT系列的整合,没有理由不用,人家的产品第一次推出是2022年,起步早也是优势。

没学生包的话,那肯定免费的优先啊,毕竟10刀/月,有这钱还不如开强大的GPT或者Claude会员呢。

copilot不能用之后换通义灵码了,差距比较大,经常胡乱补全。本来写个五个key的字典,key在之前的代码是现成的,需要挨个赋值,结果5个key写完后他非要按照第5个key的名字加上_2,_3,_4之类的再给我硬造5个key……惆怅。
换marsCode试试。

引用uHiAn的发言:

copilot不能用之后换通义灵码了,差距比较大,经常胡乱补全。本来写个五个key的字典,key在之前的代码是现成的,需要挨个赋值,结果5个key写完后他非要按照第5个key的名字加上_2,_3,_4之类的再给我硬造5个key……惆怅。
换marsCode试试。

pyCharm,豆包老是卡死,体验不了了????

22年内测的时候就开始用copilot了。其他家的AI编码产品也有再用(google、AWS、codeium、百度、阿里)。并且ai这个东西不是测试一两次就能出结果的,是要一段时间慢慢体会优劣的。以下是结论。信我没错:

1. 可用外网的情况下。首推copilot+codeium(能很大程度上补充copilot,甚至很多地方提示优于copilot,但是总体是copilot生成结果好)。
2. 无外网不可访问的情况下,次选国内的。