惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
Security Latest
Security Latest
P
Proofpoint News Feed
GbyAI
GbyAI
PCI Perspectives
PCI Perspectives
博客园 - Franky
N
Netflix TechBlog - Medium
博客园_首页
WordPress大学
WordPress大学
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
T
Threatpost
The Hacker News
The Hacker News
H
Help Net Security
S
Securelist
Recent Announcements
Recent Announcements
腾讯CDC
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Engineering at Meta
Engineering at Meta
C
Cisco Blogs
V
V2EX
C
Check Point Blog
S
Schneier on Security
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
博客园 - 叶小钗
A
Arctic Wolf
AWS News Blog
AWS News Blog
Latest news
Latest news
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
B
Blog
aimingoo的专栏
aimingoo的专栏
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy

阮一峰的网络日志

科技爱好者周刊(第 396 期):互联网通信的替代方案 科技爱好者周刊(第 396 期):互联网通信的替代方案 - 阮一峰的网络日志 科技爱好者周刊(第 395 期):软件开发的第三种方式 科技爱好者周刊(第 395 期):软件开发的第三种方式 - 阮一峰的网络日志 科技爱好者周刊(第 393 期):脑腐状态 科技爱好者周刊(第 392 期):axios 投毒与好莱坞式骗术 科技爱好者周刊(第 391 期):AI 的贫富分化 科技爱好者周刊(第 390 期):没有语料,大模型就是智障 套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的"套壳"疑云 科技爱好者周刊(第 389 期):未来如何招聘程序员 科技爱好者周刊(第 388 期):测试是新的护城河 零安装的"云养虾":ArkClaw 使用指南 科技爱好者周刊(第 387 期):你是领先的 科技爱好者周刊(第 386 期):当外卖员接入 AI 字节全家桶 Seed 2.0 + TRAE 玩转 Skill 科技爱好者周刊(第 385 期):马斯克害怕中国车企吗? 智谱旗舰 GLM-5 实测:对比 Opus 4.6 和 GPT-5.3-Codex 科技爱好者周刊(第 384 期):为什么软件股下跌 科技爱好者周刊(第 383 期):你是第几级 AI 编程 Kimi 的一体化,Manus 的分层 科技爱好者周刊(第 382 期):独立软件的黄昏 AI native Workspace 也许是智能体的下一阶段 科技爱好者周刊(第 381 期):中国 AI 大模型领导者在想什么 科技爱好者周刊(第 380 期):为什么人们拥抱"不对称收益" 科技爱好者周刊(第 379 期):《硅谷钢铁侠》摘录 我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验 科技爱好者周刊(第 378 期):预测是新的互联网热点 科技爱好者周刊(第 377 期):14万美元的贫困线 科技爱好者周刊(第 376 期):太空数据中心的争议 科技爱好者周刊(第 375 期):一扇门的 Bug 终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了 科技爱好者周刊(第 374 期):6GHz 的问题 VS Code 使用国产大模型 MiniMax M2 教程 科技爱好者周刊(第 373 期):数据模型是新产品的核心 国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例 科技爱好者周刊(第 372 期):软件界面如何设计 大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5 科技爱好者周刊(第 371 期):一个乐观主义者的专访 科技爱好者周刊(第 370 期):正确的代码高亮 错误处理:异常好于状态码 科技爱好者周刊(第 369 期):Tim 与罗永浩的对谈 科技爱好者周刊(第 368 期):不要这样管理软件团队 一天之内,智谱和 Anthropic 都发了最强编程模型 科技爱好者周刊(第 367 期):Nano Banana 的几个妙用 科技爱好者周刊(第 366 期):旧金山疯狂的 AI 广告 科技爱好者周刊(第 365 期):流量变现正在崩塌 科技爱好者周刊(第 364 期):最难还原的魔方 科技爱好者周刊(第 363 期):最好懂的神经网络解释 科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计 科技爱好者周刊(第 361 期):暗网 Tor 安全吗? 科技爱好者周刊(第 360 期):Dan Wang 的新书 科技爱好者周刊(第 359 期):Palantir 值得关注 科技爱好者周刊(第 358 期):如何拯救一家濒临倒闭的创业公司 扣子空间网页设计,是在挑战 V0 吗? 《唐纵日记》摘录 科技爱好者周刊(第 357 期):稳定币的博弈 科技爱好者周刊(第 356 期):公司强推 AI 编程,我该怎么办 科技爱好者周刊(第 355 期):两本《芯片战争》 科技爱好者周刊(第 354 期):8000mAh 手机电池,说明了什么? 国产 AI 网页开发工具:豆包 AI 编程简单测评 科技爱好者周刊(第 353 期):苹果的"液态玻璃"是为了 AR 科技爱好者周刊(第 352 期):Bug 追踪系统的正确样子 科技爱好者周刊(第 351 期):GitHub Issues(几乎)是最好的笔记应用 科技爱好者周刊(第 350 期):Java 三十周年 科技爱好者周刊(第 349 期):神经网络算法的发明者 科技爱好者周刊(第 348 期):李飞飞,从移民到 AI 明星 科技爱好者周刊(第 347 期):冷启动的破解之道 谷歌的 NotebookLM 能生成中文播客了 科技爱好者周刊(第 346 期):未来就是永恒感的丧失 巨头的新战场:AI 编程 IDE(暨 字节 Trae 调用 MCP 教程) 办公类 AI 初探:扣子空间 科技爱好者周刊(第 345 期):HDMI 2.2 影音可能到头了 科技爱好者周刊(第 344 期):制造业正在"零工化" 科技爱好者周刊(第 343 期):如何阻止 AI 爬虫 科技爱好者周刊(第 342 期):面试的 AI 作弊----用数字人去面试 科技爱好者周刊(第 341 期):低代码编程,恐怕不会成功 科技爱好者周刊(第 340 期):技术炒作三十年 Trae 国内版出来了,真的好用吗? 科技爱好者周刊(第 339 期):代币是什么 科技爱好者周刊(第 338 期):重新思考 6G 科技爱好者周刊(第 337 期):互联网创业几乎没了 科技爱好者周刊(第 336 期):面对 AI,互联网正在衰落 科技爱好者周刊(第 335 期):年底的未来已来 科技爱好者周刊(第 334 期):年终笔记四则 AI 搞定微信小程序 科技爱好者周刊(第 333 期):一切都要支付两次 科技爱好者周刊(第 332 期):西蒙·威利森的年终总结,梁文锋的访谈 科技爱好者周刊(第 331 期):你可能是一个 NPC 科技爱好者周刊(第 330 期):李开复梳理人工智能 科技爱好者周刊(第 329 期):示意图利器 D2 科技爱好者周刊(第 328 期):AI 模型不是一门好生意 AI 应用无代码开发教程:工作流模式详解 科技爱好者周刊(第 327 期):没有链接的互联网 科技爱好者周刊(第 326 期):世界没有那么多财富 科技爱好者周刊(第 325 期):VS Code 编辑器的下一站是 Zed? 科技爱好者周刊(第 324 期):人类已知的最大质数 科技爱好者周刊(第 323 期):技术公司的口号比拼 AI 开发的捷径:工作流模式 科技爱好者周刊(第 322 期):内容行业的内幕 科技爱好者周刊(第 321 期):傅盛回忆录
AI 编程助手测评:GitHub Copilot vs 豆包 MarsCode
阮一峰 · 2024-07-03 · via 阮一峰的网络日志

一、引言

AI 怎么用于编程?

目前有各种尝试,最激进的大概是 Vercel 公司的 v0.dev

你告诉它,想要什么网站,它就给你几张设计图。你选一张,它就生成写好的网页。

这很有未来感,想要什么程序,机器帮你写。但是实际上,它只能生成网页 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,后面都是这个顺序。)

如果你没有 VS Code,甚至也没有其他 IDE,问题也不大。豆包 MarsCode 提供免费的云 IDE(下图),无需下载和安装,直接在浏览器使用,并且内置数十款开发模板,还可以拉取 GitHub 仓库,用起来很方便。

GitHub 也有云 IDE,就是它的 CodeSpace,里面也能用 Copilot。不过,每月使用60小时之后,就要收费,这里就不推荐了。

四、聊天功能

AI 编程助手的主要用户界面,就是一个聊天窗口,用户向它提出各种问题。

我首先问了一个问题"什么是 CAP 定理?",测一下它们的聊天功能。

可以看到,它们的回答都是准确的、可用的,Copilot 的格式编排稍微好一点。

第二个问题"请推荐学习 JavaScript 的书籍",两者的回答差不多。

聊天的问题不限于编程,什么样的问题都可以问,比如"2025年春节是什么时候",它们的回答也没问题。

不过,这个功能的日常使用场景,应该是查找软件文档,真的好用。

五、代码生成

接下来,就来测 AI 编程助手的最主要功能:自动代码生成,让它来写代码。

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

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

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

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

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

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

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

这个环节,它们打平。另外,如果对给出的实现不满意,Copilot 可以按下 Ctrl + Enter,会有多种实现供选择(下图)。

豆包 MarsCode 则是在代码建议时,有一个浮动工具栏,可以切换多种实现(下图的箭头)。

值得一提的是,豆包 MarsCode 还有一个特色功能"代码补全 Pro",不需要手动给出提示,根据现有代码,自动预测下一个改动点,并给出推荐代码。

这个功能需要自己在设置里面打开(下图)。

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

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

六、生成注释,代码解释

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

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

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

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

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

七、其他功能

(1)代码翻译

它们都能够将一种语言的代码,翻译成另一种语言。

我试了 JS 代码翻译成 Python,没有任何问题。豆包 MarsCode 还会自动将翻译后的代码,保存成当前目录下的一个单独文件。

(2)生成单测

单元测试写起来很麻烦,AI 能够自动生成,真是省事不少。

同一段代码,Copilot 生成了4个测试用例,豆包 MarsCode 生成了5个。

并且,豆包 MarsCode 对测试用例有文字总结(下图),这很有用,可惜 Copilot 没有。

我认为,在这个环节,豆包 MarsCode 做得比较好。

(3)修正错误

AI 还可以自动修改报错的代码。如果测试用例或者自动构建没有通过,它会解释报错的原因,并给出修改建议。这里就不举例了。

八、总结

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

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

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

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

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

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

(完)