整理 | 褚杏娟
微軟某個 VSCode 語言服務(wù)擴(kuò)展中,位于nativeStrings.json
文件第 485 行的一行代碼,打破了它與 Cursor 的兼容性。
該條款規(guī)定:“C/C++ 擴(kuò)展僅可與 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及微軟后續(xù)推出的產(chǎn)品和服務(wù)一起使用,以開發(fā)和測試您的應(yīng)用程序。”這些限制讓開發(fā)者更傾向于使用微軟的官方發(fā)行版,而非其他版本。
"license_terms": "The C/C++ extension may be used only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications."
隨后,就有開發(fā)者抱怨道,微軟有一些閉源擴(kuò)展程序(遠(yuǎn)程訪問、Pylance、C/C++、C#),這些擴(kuò)展程序的最新版本已無法在 Cursor 或其他非微軟編輯器中使用。其中,Cursor 1.17.62 版本可以正常使用,但 1.18.21 及更高版本無法正常工作。
Cursor 的文檔提供了如何從微軟商店安裝擴(kuò)展的說明。該功能依賴于將擴(kuò)展下載為.vsix
文件;然而,該文件的下載鏈接現(xiàn)已不在擴(kuò)展市場的首頁中顯示。在很多情況下,如果該擴(kuò)展是開源的,開發(fā)者仍可從其代碼倉庫(如 GitHub)中下載。
另外,還有開發(fā)者稱 C# Dev Kit 也遇到了一樣的限制。
嘗試使用 Microsoft 的 Dev Kit 擴(kuò)展時 Cursor 報告的錯誤
對此,Cursor 社區(qū)中的開發(fā)者 Alexander Schroeder 表示,“我們已經(jīng)發(fā)布了一個即時修復(fù)程序,并將很快發(fā)布一個長期解決方案。”
另外,也有開發(fā)者表示,最新版本的擴(kuò)展程序阻止了它的工作,但其通過降級并禁用自動更新的方式解決了。“在擴(kuò)展程序頁面,‘卸載’旁邊的下拉菜單中有一個“安裝特定版本”。安裝版本 1.23.6”。
Cursor 的威脅
微軟發(fā)布的 Visual Studio Code 徹底改變了開發(fā)者使用 IDE 的方式,開發(fā)者可以用一個統(tǒng)一的工具來編寫幾乎所有語言和技術(shù)棧的代碼。
微軟不僅提供了 Visual Studio Code,還開發(fā)了許多擴(kuò)展插件,比如 Python 調(diào)試器、C/C++ 語言服務(wù)、Jupyter、Pylance、Python 語言服務(wù)、Azure 工具、Data Wrangler、Jupyter 快捷鍵映射,甚至還有 JavaScript 和 TypeScript 的語言服務(wù)。這些還只是微軟所開發(fā)的眾多擴(kuò)展中的一部分而已。此外,微軟還擁有 GitHub 和 npm,幾乎可以說是掌控了整個軟件開發(fā)工具生態(tài)。
這本來挺不錯的,然而,微軟某些團(tuán)隊最近情況有點不太妙——四位麻省理工學(xué)院(MIT)的本科生利用 VSCode 的開源模式,將其分叉(fork)并打造了一個競爭產(chǎn)品 Cursor。當(dāng) VSCode 詢問是否希望將 AI 建議合并進(jìn)你正在開發(fā)的代碼時,Cursor 卻是反過來,詢問 AI 是否希望讓人類插手。
Cursor 本身并不是開源的,這一做法雖然存在爭議,但在 VSCode 所采用的 MIT 許可證下是被允許的,所以我們無法查看其內(nèi)部實現(xiàn),也不知道它具體做了什么。
不過,Cursor 在去年年中融資了大約 6000 萬美元,而在差不多的時間,他們已經(jīng)擁有約 4 萬名用戶。Cursor 提供了一個帶有限制的免費政策,還有每月 20 美元和 40 美元(按用戶計費)的付費計劃。
微軟的 C/C++ 語言服務(wù)擴(kuò)展突然停止支持 Cursor,讓所有人都大吃一驚。然而,這也不是新鮮事。有網(wǎng)友表示,微軟自己的語言擴(kuò)展一直聲明不能在 Visual Studio Code 之外使用它(并且 Code fork 不算數(shù)),這絕對不是一個新問題,只是他們現(xiàn)在決定強(qiáng)制執(zhí)行對 C++ 擴(kuò)展的限制。2018 年時,微軟明確表示不允許在 Code forks 上使用 C# 擴(kuò)展。
微軟 vscode-cpp 工具 192 行長的許可證文件顯示,它禁止在 VSCode 和微軟工具以外的環(huán)境中使用。
前端工程師 Tom Smykowski 發(fā)現(xiàn),新的限制規(guī)則是在 4 月 1 日被添加進(jìn)去的,還附有某位評論者的一句評論:
“Embrace, extend, extinguish(擁抱、擴(kuò)展、消滅)。”
這個短語不僅僅是對這次變更的嘲諷,實際上它來源于微軟本身:
“擁抱、擴(kuò)展、消滅”(EEE),也被稱為“擁抱、擴(kuò)展、根除”,是美國司法部曾經(jīng)發(fā)現(xiàn)的微軟內(nèi)部使用的一個策略短語,用來描述其進(jìn)入某些采用廣泛開放標(biāo)準(zhǔn)的產(chǎn)品領(lǐng)域的行為方式:先“擁抱”標(biāo)準(zhǔn),隨后在其基礎(chǔ)上加入專有功能進(jìn)行“擴(kuò)展”,最終通過這些差異將競爭對手“消滅”。
這個策略曾在上世紀(jì)微軟多次反壟斷案件中被提及,如今再次被人提起,可見這一舉動在開發(fā)者社區(qū)中引起了不小的反感。
具體來看,這個策略的三個階段如下:
擁抱(Embrace):開發(fā)與開放標(biāo)準(zhǔn)高度兼容的軟件。
擴(kuò)展(Extend):添加開放標(biāo)準(zhǔn)未支持的新功能,從而制造互操作性問題。
消滅(Extinguish):當(dāng)這些擴(kuò)展因市場份額優(yōu)勢而成為事實標(biāo)準(zhǔn)后,邊緣化那些無法支持這些擴(kuò)展的競爭對手。
當(dāng)然,微軟從未公開承認(rèn)這就是他們的戰(zhàn)略。畢竟 VSCode 是在 MIT 許可證下開源的,.NET 也同樣是開源的,所以并不太像微軟還會執(zhí)行“EEE 戰(zhàn)略”。
不過,在這次事件中,微軟確實利用了一個存在多年的許可證條款,并在此基礎(chǔ)上對擴(kuò)展加上了限制性封鎖。過去沒這么做,大概是因為沒人把 VSCode 拿去 fork 并試圖做成競品。
有多少擴(kuò)展受到影響?
那么,到底有多少擴(kuò)展受到這種限制的影響?
Smykowski 調(diào)查后表示,還沒有發(fā)現(xiàn)其他擴(kuò)展也存在類似封鎖行為。不過 Smykowski 還沒檢查完全部內(nèi)容。全網(wǎng)搜索“extension may be used only with”這樣的短語,在微軟開源代碼庫里也沒找到更多類似描述。
然而問題是,微軟可以隨時添加這樣的限制。事實上,只要你使用的擴(kuò)展中包含以下這段話:
“您可以在 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及其后繼產(chǎn)品和服務(wù)中安裝和使用任意數(shù)量的副本,僅用于開發(fā)和測試您的應(yīng)用程序。”
那它理論上就可能在未來被微軟加上訪問限制。
顯然,這項限制是強(qiáng)制規(guī)定擴(kuò)展只能與微軟指定的工具一起使用,不能用于任何 fork(衍生版本)。
Smykowski 在查找“only with Microsoft”這種措辭時,并沒有找到有力證據(jù)表明其他語言服務(wù)擴(kuò)展的許可證中也包含類似的限制條款。
所以 Smykowski 的結(jié)論是,目前其他語言服務(wù)擴(kuò)展中并沒有類似的封鎖行為,而且并非所有擴(kuò)展都使用了這種帶有限制的許可證。
Smykowski 建議,當(dāng)開發(fā)者決定在 VSCode 的 fork 上使用某個擴(kuò)展之前,必須先檢查它的許可證,或者選擇使用其他真正開源、許可證開放的擴(kuò)展。“其實,微軟的 VSCode 擴(kuò)展商店并不是唯一的來源 —— 比如你可以從 Open VSX 獲取擴(kuò)展,它由 Eclipse 基金會托管。”
“鎖定效應(yīng)”促使了 Open VSX 市場的誕生,其初衷是防止官方 VS Code 專屬市場“嚴(yán)重限制那些采用開源開發(fā)工具的組織的能力”。
盡管如此,Open VSX 市場中的擴(kuò)展數(shù)量和使用率仍遠(yuǎn)低于微軟的官方市場。不過,Cursor 仍然在其 IDE 中提供對 VS Code 市場擴(kuò)展的訪問,包括微軟的 C/C++ 擴(kuò)展和 C# DevKit,同時還提供一個設(shè)置選項,可以從已安裝的 VS Code 中導(dǎo)入擴(kuò)展。
看起來微軟現(xiàn)在正在更嚴(yán)格地執(zhí)行其使用條款。DevClass 嘗試在 Cursor 中安裝微軟的 C/C++ 擴(kuò)展,雖然安裝成功,但在使用如“查找所有引用”等功能時卻無法正常工作,最終彈出提示窗口,提醒用戶該擴(kuò)展存在使用限制。
這種情況令人困惑,因為 Cursor 仍會在識別到合適的項目時,推薦開發(fā)者安裝微軟的 C++ 擴(kuò)展。開發(fā)者可能會考慮使用替代方案,例如 clangd 擴(kuò)展,盡管它的安裝量僅為 170 萬次,而微軟的擴(kuò)展安裝量已達(dá) 8100 萬次。
不過問題在于:雖然微軟免費提供了擴(kuò)展和 VSCode,但這并不代表開發(fā)者可以隨意使用它們做任何事情。他們完全可以隨時更改許可協(xié)議,限制你的使用方式,甚至要求為使用付費。“這就意味著,未來充滿不確定性,而當(dāng)一家公司擁有某個工具或平臺的控制權(quán)時,它也就控制了規(guī)則。”Smykowski 評價道。
為了力挺自家 Agent 產(chǎn)品?
對于微軟的這一變化,有開發(fā)者猜測可能是由于 VS Code 穩(wěn)定版中引入了“Agent Mode”這一 AI 功能,使 Cursor 成為了 VS Code 更直接的競爭對手。
VS Code Stable 在 3 月的版本中推出了代理模式(Agent mode),該模式現(xiàn)已全面支持 MCP。
與傳統(tǒng)的聊天或多文件編輯功能不同,代理模式的核心在于:它不僅僅回答問題,而是具備將開發(fā)者的想法轉(zhuǎn)化為代碼的實際操作能力:自動識別或生成所需文件,完成所有必要的子任務(wù),確保實現(xiàn)開發(fā)者的主要目標(biāo);建議終端命令或工具調(diào)用,并請求開發(fā)者執(zhí)行;具備運行時錯誤分析和自我修復(fù)能力等。
代理模式由 Claude 3.5 和 3.7 Sonnet、Google Gemini 2.0 Flash 以及 OpenAI GPT-4o 提供支持。目前,代理模式在基于 Claude 3.7 Sonnet 的 SWE-bench Verified 測試中的通過率為 56.0%。
微軟一直強(qiáng)調(diào),盡管 Code-OSS 的代碼是基于 MIT 許可協(xié)議的開源項目,但 VS Code 是微軟基于 Code-OSS 倉庫定制的發(fā)行版本,并采用了傳統(tǒng)的微軟產(chǎn)品許可協(xié)議發(fā)布。
有評論指出,在合規(guī)性方面,Cursor 可能并未直接鏈接至 VS Code 擴(kuò)展市場,而是通過其自有服務(wù)發(fā)布已上線擴(kuò)展的鏈接。目前出現(xiàn)的問題似乎僅限于微軟官方的擴(kuò)展,而非第三方擴(kuò)展。
https://github.com/microsoft/vscode-cpptools/blob/main/RuntimeLicenses/cpptools-LICENSE.txt
https://github.com/getcursor/cursor/issues/2976
https://tomaszs2.medium.com/microsoft-quietly-blocked-cursor-from-using-its-vscode-extension-heres-the-line-of-code-that-8d664caf0de5
https://devclass.com/2025/04/08/vs-code-extension-marketplace-wars-cursor-users-hit-roadblocks/
https://github.blog/news-insights/product-news/github-copilot-agent-mode-activated/
聲明:本文為 InfoQ 整理,不代表平臺觀點,未經(jīng)許可禁止轉(zhuǎn)載。
AICon 2025 強(qiáng)勢來襲,5 月上海站、6 月北京站,雙城聯(lián)動,全覽 AI 技術(shù)前沿和行業(yè)落地。大會聚焦技術(shù)與應(yīng)用深度融合,匯聚 AI Agent、多模態(tài)、場景應(yīng)用、大模型架構(gòu)創(chuàng)新、智能數(shù)據(jù)基建、AI 產(chǎn)品設(shè)計和出海策略等話題。即刻掃碼購票,一同探索 AI 應(yīng)用邊界!
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.