https://www.cursor.com/
最開始接觸 cursor 的時候是在去年年初,openAI ChatGPT 帶火了一批 AI 概念產(chǎn)品。GitHub 的 Copilot 自不用說,很早就在使用,有了大模型的加持當時也是如日中天。 我記得 cursor 當時主打的點是:
當時體驗下來發(fā)現(xiàn)也確實如宣傳所說,是挺快,但是沒有那么強的吸引力讓我愿意換 vscode 和 idea 。我使用最多的還是 vscode+idea+copilot+chatgpt 。基本上滿足我日常開發(fā)的需求了。當然后來又加上了 warp
最近我又體驗了一下 cursor ,發(fā)現(xiàn)它和原來的版本有很大的不同。而這一次,徹底改變了對它的看法。目前我已將編程工具切換到了 cursor,很心甘情愿的切換了過去。
先說最重要的,一切事情有困就有果,有果就有因,cursor 好用的功能有很多,但最重要的我認為只有一個。關(guān)于這個功能,我要說明一下它的原理。
其實市面上的 AI 編程助手類工具不止一個,比較好用的有:
大家都知道,這些工具背后是各家的 LLM ,提示質(zhì)量的高低主要取決于這些大模型的能力。而所有的工具都只是基于當前文件的。無論是代碼解釋、優(yōu)化、生成注釋,都是基于當前文件的內(nèi)容,無論是針對文件、類、方法。你對代碼提問的 codeBase 是單文件,上下文自然也是當前打開的這個單文件。
這就是現(xiàn)在的這些 AI 編程工具的運行邏輯,從當前文件中獲得代碼的上下文再結(jié)合你的提問(prompt),一起發(fā)給 LLM,最后得到結(jié)果。其實這已經(jīng)能解決不少問題了,在沒有 cursor 之前感覺很不錯,寫程序確實能提高效率。
我們覺得上面那些工具很不錯是因為我們沒有用過更好的工具:
可能有的伙伴看到這幾個字立刻就懂我是什么意思了,對,就是那個你越想越激動的事情。
cursor 的邏輯是,先將工程內(nèi)的所有代碼進行索引和向量化(Embedding),再之后你的所有提問都是基于整個工程給你答案,它會將你的提問結(jié)合整個工程的代碼一起提交給 LLM,默認有這些模型:
注意這里不包含 deepseek-coder,那是我自己添加的。
這很像基于 RAG 方法論的系統(tǒng)實現(xiàn),只不過外掛的知識庫是代碼庫而已。
這就是我認為最重要的功能,我說清楚了它的邏輯,接下來我們來說基于這個功能能做什么,這才是最激動人心的部分
之前工具的代碼補全雖然使用了 LLM,但仍然不那么精準,因為它只能把當前文件作為上下文,而 cursor,它的 codeBase 是基于整個工程的,它的代碼補全相當于是分析了你整個工程的代碼基礎(chǔ)之上給的建議,那是正當?shù)木珳拾 _@也就是為什么有的朋友說,現(xiàn)在用 cursor 寫程序一路 tab 下來就完事兒了,比自己寫的還好。簡直就是自動化編程。
智能糾錯
這代碼你就放心寫吧,如果你寫著寫著寫錯了,cursor 會在你輸入的時候自動糾正你的錯誤
它為啥能糾錯,它怎么知道我寫錯了? 對,還是 codeBase,你的整個工程它都了如指掌。
太基礎(chǔ)的功能了,然而因為 codebase,它就有了無限可能。首先,你可以在當前文件中針對某一部分來提問,比如你要重構(gòu)一個方法什么的
它會重構(gòu)的比較好,因為它的 codebase 是整個工程。
你也可以單獨打開一個聊天窗口
在這里提問可以僅針對當前文件、文件夾、圖片、文檔、網(wǎng)絡(luò)或者整個 codebase
最重要就是這個 Codebase 這是可以發(fā)揮無限想像的地方。
由于篇幅的原因,我不會把所有的細節(jié)全部用圖片或視頻的形式放出來,因為太多了,但你看我的描述也一定能體會到 cursor 的強大,這里我舉幾個例子,這些例子我已經(jīng)測試成功并且在工作中使用了,它很強,很實用:
我想你應(yīng)該知道我想說什么了,我想你也知道 cursor 為什么足以讓我興奮了。而所有的這些原因,都是因為它最重要的原理,它的 codebase,它和其他產(chǎn)品不一樣的邏輯。
cursor 當然還有一些其他功能我沒有介紹到,不過那都不重要,你已經(jīng)知道了它的邏輯,它的核心原理和功能,剩下的就交給你了,交給你的想象力和創(chuàng)造力了。
以上的內(nèi)容怎么看都是 cursor 的優(yōu)點,然而在閱讀的過程中你一定想到它還有許多令人擔心的問題,沒錯。首先就是數(shù)據(jù)安全。雖然 cursor 官方宣稱數(shù)據(jù)是保存在本地的,不會被上傳,但是我知道你一定擔心。這是個有意思的問題,因為關(guān)于這一點無論對方如何承諾你都不會輕信,隱私和方便它永遠是問題的兩端,我們不可能全都要,所以要做個取舍。
然后就是價格,cursor 前兩周是免費使用的,然后再用就要收費了,怎么收費呢?
我說一下重點,如果你使用 cursor 是包含兩部分費用的,一部分是軟件的費用,這部分比如一個月 20$ 是付給 cursor 的,另一部分是模型的使用費用,這個是你付給像 openAI 這樣的模型提供商的。那么加起來可能一個月你至少有 30$ 以上的成本。不過關(guān)于模型這部分,因為 cursor 可以添加 deepseek 的 coder 模型,所以模型使用成本算是打下來了,因為 deepseek 模型的 API 是白菜價
不但是白菜價,首次注冊人家還送 500萬 tokens
總結(jié)來說,除了優(yōu)點都是缺點,包括:
這兩點加起來對很多人來說就望而卻步了,當然還要解決網(wǎng)絡(luò)的問題。不過我覺得國內(nèi)的公司一定不會坐以待斃,一定很快就會有類似的產(chǎn)品上線了,到時候網(wǎng)絡(luò)就不是問題了。
正如我標題所寫,因為看到了 cursor,這次我真的覺得程序員有危機了,尤其是對于初級的、新手程序員。因為我用工具雖然可能有一點點錯誤,但它可以瞬間完成一些基礎(chǔ)的工作,完全可以替代人了,我不需要招那么多人來干那些 “臟活累活” ,我只需要幾個高級并且會使用高級工具的人才就可以了,他們創(chuàng)造的人效是原來的 10 倍以上。
再進一步,自動化編程可以期待了嗎? 也就是提一個描述得很清晰的需求給 AI,他能自動把程序?qū)懞茫泄菊谧觯篽ttps://www.cognition.ai/ 原先我覺得他在吹牛,現(xiàn)在,尤其是使用了 cursor 后,我覺得可能不遠了。
我在最近幾年思考了一個問題,很多企業(yè)沒有業(yè)務(wù)知識庫,就算是有,文檔也不全,也不及時更新,這個所謂的企業(yè)內(nèi)部的業(yè)務(wù)知識庫也是名存實亡。那如果需要了解業(yè)務(wù)的時候怎么辦? 比如需要大版本更新,重大業(yè)務(wù)調(diào)整的時候,怎么辦呢? 找開發(fā)看代碼是最準的了,然后這些辛苦的工作又 TMD 轉(zhuǎn)到開發(fā)這兒來了。
我想來想去,感覺沒有什么非常好的解法。雖然可以用 RAG 來解決一部分的問題,但沒有完全解決,因為只要文檔不是最新的,文檔有問題,一切基于知識庫的分析全都是錯的。直到 cursor 出現(xiàn)了,我覺得問題可以以另外一種方式來解決了。因為代碼是準的,代碼就是錯那也是代碼的 bug。但它是準的,代碼寫錯了,也是準的。代碼什么樣線上就是什么樣,業(yè)務(wù)就是什么樣。
那么整個企業(yè)的業(yè)務(wù)知識就已經(jīng)在代碼里了,只需要從代碼倉庫提煉就可以了,我們借助 cursor 或者以后什么其他類似的工具再加工一下就完成可以提煉出準確、實時、可用的企業(yè)業(yè)務(wù)知識了。而這個 “知識” 才是企業(yè)真正的業(yè)務(wù)資產(chǎn)。代碼就算沒了,根據(jù)業(yè)務(wù)重建都可以,反過來,如果你對業(yè)務(wù)不了解,給你代碼也沒用。