微軟最新發布了 Pylance,但并不開源,程序員怒了
最近,微軟發布了 PyLance。這是一個新的、用于語言服務協議(LSP)的 Python 語言支持,目的是希望在未來逐漸取代已經在 Visul Studio Code 中使用了數年的 Python 擴展的當前版本。以下是微軟官宣的信息:
Announcing Pylance: Fast, feature-rich language support for Python in Visual Studio Code
但是很多開發者也從這個信息中注意到,微軟宣稱這個項目并不打算開源。目前,PyLance 雖然也在 Github 上開放了倉庫,但只包括問題報告和一些指導性的文檔,并沒有任何源碼。
這個決定顯然也引起了一些開發者的疑慮。雖然開源與否是創立者的自由,但 VSCode 及其大量擴展的生態系統都建立在開源的基礎之上,
過去的 Python 擴展也是開源的,現在為什么改變了態度呢?
在微軟博客和 Github 上都有讀者提出了這個問題。在 Github 上的討論內容更加豐富一些,但微軟顯然不太希望繼續討論這個話題,表明態度之后隨即關閉了這個 issue。詳細內容請移步下列地址:
Are there any plans to eventually make Pylance open source?
值得玩味的是微軟方面的回答:
We appreciate your suggestion, but we are not planning to make Pylance open source at this moment. Pylance is a completely new language server implementation, with significant enhancements, and is planned to be included in proprietary service offerings. A large amount of the code that powers Pylance is available as open-source in the Pyright type checker.
劃重點:以上說法表明閉源的原因并不像某些人猜想的那樣,是因為該項目還不夠成熟、需要時間去準備(能拿出來演示說明肯定是有一定成熟度的);
而是微軟想要把它包含到自己私有的服務產品中。從技術角度講這個說法有點奇怪————很難想象一個單純的語言服務要包含什么私有內容,以致于不能開源。不過結合微軟的商業策略,我們不難想象,未來 VSCode 可能會更多地作為 Azure 或其他微軟產品的專有服務,免費開源的部分可能成為“縮水”版本。這次 PyLance 的發布就是一個明顯的信號。
可想而知,這肯定會引起開源愛好者的不滿。這幾天我在外網已經看到一些來自開發者的批評,更有人提到微軟一直以來臭名卓著的手法:擁抱、擴展與破壞,直言該公司“從未改變”(這是文雅的說法,粗魯一點就是 XX 改不了 XX,呃...你明白的)。
我個人對此倒是不怎么感到意外。雖然這幾年微軟似乎在開源方面動作很大,以至于很多人相信它已經成了社區的“好公民”。我自己對 Visual Studio Code 這個產品也頗有好感,還為它寫過不少文章,但我知道它從一開始就不是完全開源的————它包含收集用戶信息的組件(稱為“遙測”),雖然承諾不收集用戶敏感信息,但除了微軟自己以外,沒人能確定到底收集了什么。所以有些不太放心的開發者自己編譯一個干凈的版本,這就是 VSCodium。
今年早些時候,VSCode 公布了重量級功能:遠程開發。這個功能為把 VSCode 嵌入托管的云其他產品奠定了基礎,但同時它也是不開源的。我也曾寫過一篇文章專門分析這個問題:
/blog/2020/04/vscode-remote-not-open-source
從那時起我就意識到,微軟將來很可能把 VSCode 搬到云上,作為 Azure 或其他商業產品線的組成部分。我們應該會看到越來越多的核心組件走向閉源方向,這主要是出于以下考慮:
為了商業利益,微軟應該會把部分功能作為收費的“高級功能”
也存在另一種可能,即功能本身并不收費,但會作為微軟產品專享的特有功能,而開源部分將不可避免地成為“閹割版”
微軟并不希望培養潛在的競爭對手。這在遠程開發的許可中已經說得很明確了:只允許私人使用,不允許部署到其他公有平臺,或者作為產品的一部分提供。
雖然現在還只是個苗頭,但找這個趨勢發展下去,VSCode 走向封閉是不可避免的。對這個技術上有很多亮點的項目,我個人覺得頗感遺憾。讓時間來證明一切吧。