今天想跟你聊一个特别有意思的话题。你坐电梯的时候有没有想过,这电梯的调度算法到底是怎么工作的?为什么有时候你在15楼按了下行,电梯非要先上到20楼再下来接你?
哈哈,这个太经典了,程序员的职业病嘛。其实电梯调度算法在操作系统课上是个经典案例,跟磁盘调度算法是同构的。最常见的就是SCAN算法,也叫扫描算法——电梯像扫地一样,从底层扫到顶层再扫回来,沿途把所有请求都响应掉。现实中的商用电梯当然更复杂,还会加入客流预测、目的楼层调度这些高级策略。
对,所以有人就拿这个题目做了一个特别硬核的实验——用同一个电梯调度模拟器项目,在完全相同的条件下,让Claude Code和Cursor这两款AI编程工具各做一遍,看看谁表现更好。我觉得这个实验设计得挺巧妙的,因为电梯调度这个问题看起来简单,实际上涉及的算法设计空间非常丰富。
嗯,而且这个实验的控制变量做得很严格。它用的是T3 Stack——就是Prisma加Next.js加tRPC这套组合,同一个项目模板复制两份,提示词完全一样,两个工具都预先读了项目结构。这个技术栈的选择其实很有讲究,因为它从数据库到前端是全链路类型安全的,任何数据结构一改,编译期就能捕获到。这对AI工具的架构理解能力是个很高的考验。
好,那我们就从头说起。两个工具拿到同样的任务之后,第一反应就不一样?
对,差别挺大的。Claude Code上来第一件事是把任务拆成一个Todo List,数据库设计、API开发、前端界面,拆得很清晰,有明显的工程思维。而Cursor呢,更'听话',提示词里说先写文档,它就老老实实先写文档。这其实反映了两个工具在自主规划能力上的根本差异。
这背后其实是两种完全不同的产品哲学。Claude Code本质上是个命令行工具,以Agent模式工作,它会自己规划、自己执行。Cursor是基于VS Code深度定制的IDE,AI是作为编辑器的增强层嵌进去的。一个是'AI作为独立Agent',一个是'AI作为IDE插件',范式就不一样。
你这个总结很到位。而且这个范式差异在后面的架构理解环节体现得更明显。Cursor虽然已经生成了项目规则文件,但它拿到任务后,居然在项目里新建了前后端两个目录,想从头搭一个全新的项目结构。这就完全偏离了'在现有项目上迭代'的初衷,开发者不得不手动喊停纠正它。
这就有点像你请了个装修师傅来翻新厨房,结果他说'我觉得整栋房子推倒重建比较好'。
哈哈对,就是这种感觉。Claude Code在这方面就好很多,它正确地在原有项目结构上开工,没有另起炉灶。不过它也不是完美的,比如启动数据库的时候用了PostgreSQL的默认端口5432,但项目其实配的是SQLite,端口还被本地数据库占了,还是需要人工介入修一下。
所以两个都有问题,只是问题的严重程度不一样。那进入持续开发阶段呢?
开发阶段两个工具的'性格'就更鲜明了。Claude Code特别干脆,废话极少,说完就写代码,还会主动跑格式检查和测试,工程自觉性很强。但它有个硬伤——作为终端工具,没法保持Web服务的长连接,开发服务器启动之后超时就断了,得手动重启。
这确实是命令行工具的天然短板。Cursor在这方面就舒服多了吧?
对,Cursor作为IDE,多窗口体验是天然优势。一个窗口跑开发服务器,另一个窗口继续写代码,互不干扰,这个在日常开发中确实很实用。而且Cursor还额外做了一个介绍页面,样式还挺漂亮的。但这恰恰暴露了一个问题——它'脑补'了用户根本没要求的功能。
你说的就是AI领域常说的'幻觉'问题?
没错,Hallucination。在编程场景里,幻觉的表现就是生成不存在的API调用、编造库函数、添加用户没要求的功能。代码这个东西比较残酷,要么能跑要么不能跑,不存在'大致正确'这种中间状态。Cursor在这次实验中幻觉明显比Claude Code多,这直接影响了一个非常关键的指标——信任度。
信任度这个概念我觉得特别值得展开说。你能解释一下它怎么影响实际开发效率的吗?
其实这跟自动驾驶的分级体系特别像。一开始你肯定要逐行审查AI生成的代码,这相当于L1辅助驾驶。但如果这个工具反复验证下来都靠谱,你就会慢慢放手,只看关键变更甚至只看最终结果。Claude Code因为幻觉少,开发者更快地进入了高信任度模式,'只管看结果就好了'。但Cursor每次都得仔细review变更内容,因为你不知道它又'脑补'了什么。长期项目里,这个差距会被放大得非常明显。
不过这种信任也是脆弱的吧?一次严重的幻觉可能就把之前建立的信任全打破了。
完全正确。所以即使在高信任度阶段,关键节点的人工审查仍然是必要的安全网。比如Claude Code这次就犯了一个需求理解错误——提示词明确说不要登录功能,它还是加了。修复之后倒是恢复正常了,但这说明AI编程工具目前还远没到可以完全放手的程度。
那最终两个工具的交付物对比呢?
两个都交付了可运行的模拟器。Claude Code的输出跟原项目风格高度一致,连背景都没换,功能基本符合预期,就是右侧配置面板太长没处理滚动。Cursor的界面更漂亮,还多做了介绍页,测试代码也能跑——虽然初始得了零分——但对原有代码风格的贴合度比较低,额外加的东西也比较多。
所以总结下来,这两个工具其实是各有适用场景的。
对。如果你是在一个已有项目上做迭代开发,Claude Code更合适,它对现有代码理解更深,风格一致性好,幻觉少,能更快建立信任。如果你是从零开始搭原型、做新项目,Cursor的IDE体验和视觉效果确实有吸引力,但你得准备好花更多时间做代码审查和方向纠偏。
嗯,说到底工具的选择不是非此即彼的。理解每个工具的脾气和短板,在对的场景用对的工具,这可能才是当下AI辅助编程最务实的态度。毕竟连电梯调度都没有万能算法,何况是写代码这件事呢。