过度吹捧 Cursor 的人通常缺乏技术能力
过度吹捧 Cursor 的人通常缺乏技术能力
2025-04-12
- #AI
标题略带标题党,请不要太当真。我想表达的是,我们不应该过度关注我们使用的工具。 这是简单的逻辑:只有当你的工程技能低于 Cursor 所能做到的程度时,你才会觉得 Cursor 非常棒并且无所不能。当然,这有点像一句空话。
事实上,Cursor 的代码补全能力并没有比 GitHub Copilot 好多少。它们都使用相同的底层模型——无论是 Claude 还是 GPT。在工程微调方面,Cursor 和 Copilot 的工作方式都是使用一些文件作为当前对话的上下文。
Cursor 比 Copilot 略胜一筹的地方在于,它会主动搜索并引用当前项目目录中的其他文件。 这确实很有用——你无需告诉它要引用哪些文件;它会自行尝试。 Copilot 作为一个插件,缺乏这种能力。 这绝对是 Cursor 的一个优点。 如果你的项目有很多可重用的代码,Cursor 确实可以大放异彩。
但有时 Cursor 感觉过于“聪明”。 它甚至会在未经你同意的情况下在你的项目中创建新文件,这意味着你必须密切关注它是否修改了你不想更改的文件。 相比之下,Copilot(在 GoLand 中)只是一个提供代码建议的插件——你可以选择是否使用它们。 VS Code 中的 Copilot 现在提供了类似于 Cursor 的体验,它让你选择接受或拒绝更改。
因此,比较而言:Cursor 和 Copilot 使用相同的大型语言模型(没人真的认为 Cursor 训练了自己的模型,对吧?),但 Cursor 在项目级别拥有更多的控制权,而 Copilot,名副其实,更像是一个助手。 这是它们最大的区别。
现在回到模型本身。 o1 是目前为止最好的模型——至少从我的日常经验来看是这样。 我经常使用 o1 来精确定位代码中的错误,而其他模型往往会给出不正确或模糊的解释,包括 o3-mini-high 和 4o。
例如,当调用一个智能合约时,原始命令是:
cast call requestPrice(string) "BTC" —-rpc-url=http://eth:8545
后来,我需要调用另一个需要一个额外参数的函数,所以我复制了代码并将其更改为:
cast call requestPrice(string) "BTC" "USD" —-rpc-url=http://eth:8545
你立刻注意到问题了吗? 实际上,4o 确实给出了正确的分析,只是不够精确——它列出了三个可能的原因。 但是 o1 立刻找到了正确答案。
当然,模型之间的差异并不总是如此明确——只是碰巧想到了这个例子。 我想说的是,从日常使用来看,o1 是最可靠的模型。
我非常怀疑那些吹捧 Cursor 的人是那些以前从未真正使用过 AI 的人,并且在使用 Cursor 后才意识到生成式 AI 已经变得多么强大——所以他们很兴奋。 当他们需要生成式 AI 时,他们的第一反应不是打开 ChatGPT 或 Gotk3,而是跳到 Cursor 的代码面板并开始聊天。
所以实际上,那些吹捧 Cursor 的人将生成式 AI 的力量误认为是 Cursor 本身的力量,这就是为什么他们认为 Cursor 特别好。
在工作中,我曾不止一次被强烈推荐使用 Cursor,甚至被告知停止使用 GoLand,人们说诸如“GoLand 是垃圾”和“Cursor 是最好的”之类的话。
首先,我一直认为编辑器的选择是个人的偏好——为什么要小题大做呢? 其次,如果人们认为你选择的编辑器反映了一种等级或优越感,那就太幼稚了。 最后,我使用 GoLand 有两个简单的原因:1)箭头清楚地显示了接口实现关系;2)前进/后退导航快捷方式非常方便。 这两个原因帮助我快速理解和跟踪代码。
这导致了一个差异:使用 GoLand 的人倾向于更多地关注代码逻辑。 在寻找代码的特定部分时,他们更喜欢通过代码关系(如接口实现)跳转。 另一方面,Cursor (VS Code) 用户更关注项目的目录结构、文件名和文件位置——因为 Cursor 缺乏可靠的代码导航功能,他们必须依靠结构来拼凑代码。
至于代码自动完成,带有 Copilot 插件的 GoLand 可以很好地满足日常需求。 大多数情况下,需要完成的是类似日志语句的内容。 对于更复杂、逻辑繁重的代码,我不敢依赖 AI。
也许有些人向我推荐 Cursor 的原因是他们认为我不知道如何使用 AI,或者认为我不知道如何使用 Cursor(?)。 这很奇怪。 我早在 2023 年 ChatGPT 首次爆火时就尝试过了,甚至写了 Don’t Underestimate ChatGPT。 如今,我一直在使用 ChatGPT——无论是在工作还是在生活中。
总而言之,我的观点是:喜欢 Cursor 或使用 Cursor 完全没问题。 只是不要过度吹捧 Cursor。