奧推網

選單
科技

微軟計劃閉源在VS Code中的C#擴充套件,惹開發者唾棄

整理 | 彭慧中 責編 | 屠敏

出品 | CSDN(ID:CSDNnews)

微軟負責。NET和Visual Studio的專案經理Tim Heuer在今天宣佈:計劃將VS Code中的C#擴充套件遷移到語言伺服器協議(LSP)中,與此同時還伴隨著閉源元件的加入。

訊息一經發布就激起了不小的水花。很多開發者認為VS Code幾乎一直是開源的,現如今在開源的。NET中插入專有的元件,是否會導致此工具整體向著閉源趨勢發展?這一操作究竟為何,也給無數開發者留下了疑問。

C#擴充套件遷移至LSP已成必然?

在過去幾個月裡,。NET團隊評估了未來將如何發展。NET工具生態系統,並將更多的功能納入VS Code中。目前,VS Code中的C#體驗是由OmniSharp(一款用於C#開發的vim外掛)於8年前,透過使用當時的API和協議,將其帶到VS Code中的。這一舉措曾引起了很大的反響。

而今天,語言伺服器協議(LSP)已經成為現代開發工具之間相互對話的標準機制。因此微軟相信,將C#擴充套件遷移到LSP將幫助他們完成建立一個可擴充套件的、靈活的工具環境的目標。LSP可以輕鬆地將新經驗整合到VS Code的C#中。

Tim Heuer表示:“為了使在VS Code中的C#體驗進一步提升,我們打算將擴充套件轉換為完全使用LSP進行通訊,並將現有的OmniSharp元件也更新為以這種方式通訊。我們計劃建立一個新的‘LSP工具主機’元件,它同時整合了開源元件,如Roslyn和Razor,以及閉源元件,如IntelliCode。利用LSP將使我們能夠為VS Code擴充套件中的C#帶來更多創新功能,以及一些使用閉源的經驗。”

“一旦LSP工具主機完成,這將成為C# for VS Code擴充套件的預設體驗。現有的使用者將能夠在目前存在的開源OmniSharp系統和新的 “LSP工具主機 ”之間進行選擇,而後者將提供額外的體驗。LSP工具主機不會被開源,但我們計劃與社群進行溝通,以幫助指導我們的未來計劃。”

“我們一直在與OmniSharp團隊合作,未來也計劃與他們以及更廣泛的社群合作,以推動這一令人興奮的。NET工具的新未來。”

插入專有軟體惹眾人非議

不少開發者對C#擴充套件的轉移不置可否,對“閉源”的這一字眼更是感到格外刺眼。

開發者Muhammad Azeez表示:雖然VS Code中的加入了C#擴充套件是非常受歡迎的,但新的LSP不開源則是一個奇怪的決定。如果僅僅是關於IntelliCode,那麼他們可以使LSP伺服器實現可擴充套件且開源,並加上可選的閉源元件,如IntelliCode。正如GitHub Copilot作為一個獨立的擴充套件,在任何地方都可以使用,也許類似的方法也可以用於VS Code中的IntelliCode,而由於Copilot的存在,或許IntelliCode在VS Code中也並不那麼重要。

不少人認為微軟一直遵循著他們的慣用伎倆,即:擁抱技術——將技術擴充套件到其他產品中——最後消滅技術。而此次舉動似乎也別無二致。再此之前,微軟已經注意到了C#擴充套件的安裝量,因而不得不選擇“擁抱”,然而經歷這樣幾撥“奇葩操作”後,最終也將走向煙消雲散。

開發者Gerard Smit表示:“我寧願在Visual Studio市場上看到一個新的擴充套件,但我明白微軟擁有C#擴充套件的權利,這使得新擴充套件的出現很難發生。我真的希望這不是微軟利用其權力的行為,OmniSharp團隊在這方面也有發言權。”

“同時,不僅僅是LSP伺服器能實現開發工具之間的對話,LSP也被其他編輯器所實現,如Vim(https://github。com/OmniSharp/omnisharp-vim)或Emacs(https://github。com/OmniSharp/omnisharp-emacs)。我假設微軟不會為這些編輯器做擴充套件(因為只提到了vscode-csharp),所以一旦LSP工具主機得到充分關注,OmniSharp就會慢慢消亡(特別是如果OmniSharp團隊正在研究LSP工具主機的情況下)。那麼這就是最後一步:消滅。”

“當微軟試圖透過做出不利於使用者的決定來爭奪短期內的權力,或在現有的市場份額上獲得回報時,似乎是很可悲和短視的。”開發者Nyeogmi總結道。微軟曾透過建立開放原始碼從開發者那裡獲得了大量的好感,如今卻又打算走回頭路,這無疑將激起大批使用者的憤怒。畢竟,任何封閉的工具最終都會“日薄西山”,被開發者們唾棄。

微軟的迴應

Tim Heuer在最近的更新中,迴應了關於閉源的爭論:Razor和C#的LSP實現將像今天一樣保持開源(Roslyn 和 Razor)。VS Code C#擴充套件 (ms-dotnettools。csharp) 本身也將保持開源。已經的開源部分仍然保持開源,並且在積極的開源開發中。這確保了 VS Code 之外使用 LSP 的其他人繼續有權訪問C#。

而這個新的主機元件是開放和封閉原始碼功能之間的橋樑,我們可以同時提供兩者。

儘管微軟提供了這樣的選擇,但微軟企圖在閉源元件上打主意的“司馬昭之心”似乎也已經敗了不少使用者的好感。

參考資料:https://github。com/OmniSharp/omnisharp-vscode/issues/5276