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