微軟欲閉源 VS Code 的 C# 擴充套件惹眾怒
6 月 16 日,微軟專案經理 Tim Heuer 公佈 了 VSCode C# 擴充套件的路線圖更新,新的路線圖引入語言伺服器協議(LSP) 作為 VSCode C# 擴充套件的基礎通訊機制,並計劃建立一個新的“LSP Tools Host”元件作為新版 C# 擴充套件的基礎,以引入更多實用功能。但微軟在公告中稱 “LSP Tools Host”元件 將不開源 ,該決定隨即引發了大量批評。
八年前,OmniSharp 團隊用當時的 API 和協議開發了 VS Code 中的 C# 擴充套件。如今語言伺服器協議 LSP 已成為現代開發工具(編輯器、IDE 等)相互交流的標準機制,因此微軟打算將 C# 擴充套件切換為完全使用 LSP 進行通訊,並計劃更新現有的 OmniSharp 元件,使它們也以 LSP 進行通訊:
(這裡要提一句,建立 C# for VSCode 擴充套件的 OmniSharp 團隊雖然有很多微軟的員工,但該團隊由社群驅動,並不屬於微軟,也就是說微軟正在收編由社群開發的 C# 擴充套件,把它的發展路徑掌握在自己手中。)
利用 LSP ,將使我們能為 C# for VS Code 擴充套件帶來創新的功能。包括提供高階功能,以及在某些情況下提供 閉源體驗 ,例如 IntelliCode。
我們計劃建立一個新的“LSP Tools Host”元件,它將 Roslyn 和 Razor 等開源元件 與閉源元件整合在一起 ,提供了更廣泛的功能。
“LSP Tools Host” 將成為 C# for VS Code 擴充套件的 預設體驗, 現有使用者可以在現有的開源 OmniSharp 驅動系統和新的“LSP Tools Host”之間進行選擇,後者將提供一些額外功能(比如閉源功能)的訪問許可權。
“LSP Tools Host”不會開源,但我們計劃在此過程中與社群進行溝通,以幫助指導我們未來的計劃。
簡而言之,採用 LSP 通訊機制之後,這個新的 LSP Tools Host 元件將是新的 C# for VS Code 擴充套件的預設功能包,會捆綁更多“開箱即用”的功能。也許是因為這個元件引進了一些閉源的功能模組,所以社群使用者可以幫忙開發,但它不能開源。
這則公告毫無疑問地被衝了,使用者紛紛質疑為什麼新的元件不能開源,指責微軟“回到過去那個封閉的、利益至上的微軟”:
面對眾人對閉源的質疑,微軟專案經理 Tim Heuer 更新了公告,進一步解釋了 “LSP Tools Host” 元件不開源的原因:
Razor 和 C# 的 LSP 實現將保持開源(Roslyn 和 Razor)。VS Code 的 C# 擴充套件 (ms-dotnettools.csharp) 本身也將保持開源。
這個新的 “LSP Tools Host” 元件只是 開源和閉源功能之間的橋樑 ,讓我們可以同時提供這兩種功能。
但有一說一,這個說法似乎不太能服眾,畢竟路線圖寫得明明白白: “LSP Tools Host” 將成為 C# for VS Code 擴充套件的預設體驗,現在則稱其只是一個“橋樑”......
前車之鑑
其實,在 C# 擴充套件之前,微軟對 VSCode 的語言擴充套件就有過收編再閉源的操作 。使用者 Pradyun Gedam 指出:此前 VSCode 的 Python 擴充套件在開源解決方案 Jedi 的支援下普及,然後微軟將其收編,並 構建了一個基於 LSP 的閉源 Python 擴充套件 pylance ,承諾提供更好的使用者體驗。
然後微軟就將閉源的 pylance 設為 Python for VS Code 擴充套件的預設方案(甚至推送提示,讓使用者切換到該擴充套件),同時不斷地減少對開源部分的資源投入。如今,使用 Pylance 的 Python 擴充套件比 Jedi 多太多功能,以至於使用者只能選擇閉源的 pylance 擴充套件。
使用者 Gerard Smit 對此進行了總結:“ 擁抱、延伸和熄滅。 ”這三個詞指先擁抱開源,讓社群力量為其提供更完善的功能;然後再對該功能進行“延伸、擴充套件和改善”,隨後再閉源並強推“延伸”之後的新功能,“熄滅”原有的由社群驅動的開源功能。
- 為什麼 Fedora 一開始允許使用 CC0 許可證 | Linux 中國
- 開源節流!中國移動上半年淨利增近19%,員工減少3866人
- What's new in dubbo-go-pixiu 0.5.1
- 負載均衡原理分析與原始碼解讀
- Padloc:一個直觀的開源密碼管理器 | Linux 中國
- 中國電信成為首個加入 OpenHarmony 開源鴻蒙社群的運營商
- 利用 SonarScanner 靜態掃描 Rainbond 上的 Maven 專案
- Gartner:iPaaS、低程式碼平臺銷售額將在 2022 實現兩位數增長
- Koodo:一款適用於 Linux 的一體化開源電子書閱讀器應用 | Linux 中國
- 不刪了!遭強烈反對後,GitLab 修改政策
- 分散式鏈路追蹤Jaeger 微服務Pig在Rainbond上的實踐分享
- AppFlowy:Notion 的開源替代品 | Linux 中國
- 微軟 .NET Core 3.1 年底將結束支援
- GNOME 新功能:安全啟動被禁用時警告使用者
- Aapache ShenYu 畢業成為 Apache 頂級專案!
- 收藏!0基礎開源資料視覺化平臺FlyFish大屏開發指南
- 從開源的視角,解析SAP經典ERP “三十年不用變”的架構設計 薦 轉
- 從碼農轉型大音樂家,你需要這些音樂製作處理工具
- 時隔 15 年,Glibc 終於引入了用於 Linux 的 arc4random 函式
- 五分鐘給你的 gRPC 服務加上 HTTP 介面