我不想写这篇对比
真的不想。又一个AI编程工具对比?拜托。但连续三周,我在真实项目里同时用百川和Cursor——不是玩具例子——我有了很强烈的看法。
看看我在构建一个带实时WebSocket数据的React仪表盘时发生了什么。
初遇百川
百川像一位耐心的教授。我输入“构建一个每秒更新的实时图表组件”。它停了一下。然后生成了整个文件——导入、状态管理、清理逻辑、错误边界。不手把手教。它假设我知道自己在做什么。
代码干净。TypeScript类型遍布。注释中英文混搭。有点怪,但我习惯了。
但当我要求它把同一个组件重构为自定义hooks时,它犹豫了。它一直建议我重构整个应用。像个固执的高级开发者,觉得自己更懂。
然后是Cursor
Cursor是相反的。它是那个抢着接话的实习生。我打开一个新文件,刚输入“const useWebSocket”,它立刻建议了接下来十行。快得吓人。
对于同样的图表组件,Cursor在30秒内给了我一个可运行的版本。但很粗糙。没有错误处理。没有清理逻辑。它假设我之后会修。
Cursor擅长自动补全。它在你专注时读你的心思。但让它推理架构?它耸肩。一个下午给了我三种不同的状态管理模式。我得自己选。
真正区别
百川思考。Cursor行动。
对于复杂逻辑——比如用泛型实现一个自定义事件发射器——百川第二次就对了。Cursor给了个能编译但内存泄漏的东西。
对于样板代码——比如为十个API端点写Zod schema——Cursor快四倍。百川一直问我是否确定字段类型。
谁该用哪个
如果你在构建原型或写CRUD,选Cursor。它是速度恶魔。
如果你在做一个正确性比速度更重要的生产系统,百川更安全。它会自我检查。
结论
我两个都留着。Cursor写初稿,百川做审查。它们互相弥补弱点。
但如果必须选一个?对我的项目——后端为主、TypeScript、实时数据——我选百川。它犯的蠢错误更少。
Cursor在原始速度上赢。百川在可靠性上赢。你选吧。