跳至正文

折腾了一圈AI编程助手,分享下心得

今天折腾了一整天AI编程工具,从早上九点坐到晚上七点,屁股都坐麻了。本来只想改个Python脚本,结果不知不觉掉进了工具对比的坑里,试了六个不同的AI编程助手,最后发现其实最适合自己的反而是最开始用的那个。这种心情怎么说呢,就像你花了一下午逛淘宝想买件新衣服,最后发现还是身上这件最合身。

先说说我试的第一个,GitHub Copilot。这个我现在还在用,但说实话最近越来越觉得它有点笨。可能是因为我用的Python版本是3.11,有些新语法它经常理解错。比如我写一个类型注解,它给我补全的代码直接报TypeError,报错信息是”unsupported operand type(s) for +: ‘int’ and ‘NoneType'”,我一看,它把Optional参数当普通参数处理了。这种低级错误出现频率大概三四次就会有一次,气得我差点把VS Code砸了。不过Copilot有一点好,就是补全速度快,基本上我敲完函数名,它就能把整个函数体吐出来,虽然有一半需要我手动改。

然后试了Tabnine。这个我之前听说过,说是更注重代码隐私,可以在本地跑模型。我下载了它的企业版试用了下,配置过程倒是不复杂,直接在VS Code装插件,然后选了本地模型。但问题来了,我的笔记本是MacBook Pro M1芯片,16G内存,跑本地模型的时候风扇直接起飞,键盘烫得能煎鸡蛋。而且补全质量说实话不如Copilot,经常给一些莫名其妙的代码片段,比如我在写一个数据清洗的函数,它给我补了一个打印hello world的测试代码。我:???这玩意儿能卖钱?

第三个试的是Amazon CodeWhisperer。这个因为是AWS出的,我想着跟我的云服务应该能配合好。安装倒是挺方便,AWS账号登录就行。但它有个毛病,太啰嗦了。我写个简单的for循环,它非要给我生成一个完整的错误处理加日志记录版本,代码量直接翻三倍。我写的是个人项目,又不是给银行写核心系统,要那么严谨干嘛。而且它生成的代码风格偏Java,很多Pythonic的写法它完全不理解,比如列表推导式它基本不会用,全是for循环加append。

中间还试了Cursor,这个其实不是插件,是个独立的IDE,基于VS Code改的。界面挺干净,内置了AI功能。我用了大概两个小时,感觉它最大的亮点是能理解整个项目上下文。比如我让它帮我重构一个模块,它确实把相关的import、依赖、调用关系都考虑到了,生成的代码直接就能跑,没有报错。这个体验很爽。但问题是我已经习惯了VS Code的快捷键和插件生态,突然换IDE就像让你用左手写字,别扭得要死。而且它收费,Pro版一个月20刀,我犹豫了一下还是卸载了。

第五个是Codeium,这个我之前完全没听说过,是看一个技术博客推荐的。免费版就能用,支持的语言也挺多。我试了一下它的补全和聊天功能,补全速度确实快,感觉比Copilot还快一点点。但它有个致命的问题,对中文支持很差。我写注释用中文,它生成的代码经常跟注释对不上。比如我写”# 从数据库读取用户信息”,它给我生成了一段从CSV文件读取数据的代码。这就很离谱,数据库和CSV能是一回事吗?我怀疑它的模型在中文语料上训练得不够。

最后一个,也是最让我崩溃的一个,是通义灵码。这个是阿里出的,我想着国产工具应该对中文理解好一些吧。安装之后第一感觉是界面挺友好,中文化做得不错。但用起来问题就来了,它的补全经常卡住,有时候我等了十几秒它才出结果,严重打断编码节奏。而且它生成的代码质量波动很大,好的时候能写出一段很优雅的代码,差的时候就给你返回一个”这是一个示例,请根据实际情况修改”,等于什么都没干。最离谱的一次,我问它一个关于Python异步编程的问题,它给我回复了一段Java代码。我:???我确认了三遍我的文件后缀是.py没错。

折腾完这一圈,我坐回电脑前,看着开着Copilot的VS Code,有点恍惚。其实我最开始用Copilot的时候挺满意的,就是最近觉得它有点笨才想换。但试了一圈发现,每个工具都有自己的毛病,Copilot虽然有时候犯低级错误,但至少它稳定,不会突然卡住,不会给我生成别的语言的代码,而且社区支持好,遇到问题随便一搜就有解决方案。

不过通过这次折腾,倒是发现了一个组合用法:写简单脚本或者CRUD代码的时候用Copilot,遇到复杂逻辑或者需要重构的时候切换到Cursor。Cursor那个能理解项目上下文的能力确实强,但日常编码用它太奢侈了,而且切换IDE的成本太高。所以我现在是两个工具配合着用,Copilot常驻,Cursor当高级顾问,遇到搞不定的问题再请它出山。

对了,中间还试了一个叫Replit Ghostwriter的,但因为是网页版的,我实在用不惯,写了十分钟就放弃了。还有一个叫Cody的,Sourcegraph出的,据说能理解整个代码库,但我还没来得及配置,今天实在是试吐了。

写这个的时候Copilot又犯蠢了。我刚打了一行”def calculate_average(numbers):”,它给我补全的代码是遍历numbers然后求和除以长度,这没问题,但它还在后面加了一段异常处理,捕获了ZeroDivisionError和TypeError。我就是想写个简单的函数,又不是写生产环境的代码,它非要给我加这么多防御性编程的东西。有时候我觉得这些AI工具太”懂事”了,懂得到处都是不必要的东西。

总结一下今天的教训:工具这东西,适合自己的才是最好的。但问题是,你得花时间试才知道哪个适合自己。我今天花了整整一天,最后发现还是原来的工具香,这种感觉就像你花了一百块钱打车去一个地方,结果发现走路只需要二十分钟。而且这些AI编程助手都有一个共同的问题,就是它们生成的代码看起来都对,但总有一些细节需要你手动调。你以为是全自动,其实还是半自动。

对了,差点忘了说,今天试这些工具的过程中,有三次差点把代码仓库搞崩。一次是Citizen(不对,是Cursor)自动重构的时候把我一个模块的import路径全改了,导致其他文件全部报错。一次是Tabnine的本地模型跑着跑着直接把我电脑搞死机了,强制重启之后发现有个文件没保存。还有一次是Codeium的聊天功能里,我问它怎么优化一段代码,它给了我一个建议,我照着改了之后发现性能反而更差了。这些教训说明,AI生成的代码一定要经过人工审核,千万别无脑信任。

好了,今天的AI编程助手测评就到这里。我准备去泡杯咖啡,然后继续用Copilot写那个Python脚本。折腾了一天,该干的活一点没干,真是服了自己。下次再想换工具的时候,我一定先问问自己:到底是工具不好用,还是我自己太菜了。


📎 延伸阅读

看完这篇,如果你想:

  • 直接拿工具 → 回复”13“,我把跨境获客工具包发给你
  • 系统学习 → 点击菜单”AI训练营”,从0开始跑通AI变现

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注