近日,微軟因在即將釋出的 .NET 6 中悄悄刪除了 Hot Reload(熱過載) 的核心部分,一時間“激怒”了開源.NET社群,且受到了來自開源.NET 開發者的“攻擊”。
對此,外界評論稱微軟此舉或“為了增強 Visual Studio 的吸引了拉動銷量”,尤其是針對其跨平臺的同類 Visual Studio 程式碼,因此悄然從開源.NET 程式碼中刪除了“熱過載”這個旗艦功能。
據瞭解,該事件“震源”的兩個關鍵點:一是 GitHub 上開源.NET SDK 儲存庫中的 pull 請求裡,其中 2500 行“熱過載”功能的原始碼被從名為 dotnet watch 的工具中刪除;二是在該部落格文章中,主要專案經理 Dmitry Lyalin 透露,“我們決定從即將釋出的.NET 6 GA開始,只通過 Visual Studio 2022 啟用熱重新載入功能。”
也就是說,.NET 6.0 的熱過載功能,只限於 Windows 和 Visual Studio 開發平臺,而非開放的跨多個平臺可用的。
所謂的“熱過載”功能,是開發人員可以在應用程式執行時修改原始碼、更改應用,並在執行的應用程式中檢視結果。這個功能可以幫助加快開發過程,比重建程式碼、停止應用程式、應用更改然後再次啟動程式碼還要快。
Lyalin 表示,引入熱重新載入時,開發人員可以通過“Visual Studio 2019 版本 16.11(預覽版1)中的.NET 熱重新載入體驗和.NET 6(預覽版4)中的dotnet watch 命令列工具”來使用該功能。“該功能在.NET 6 RC2 中,具有上線許可證,該版本已於 10 月 12 日釋出,早於計劃 11 月 9 日在.NET Conf 2021 線上會議上釋出.NET 6 之前。
微軟刪除“熱過載”功能,在當前階段來看是個令人驚訝的操作,.NET 開發人員更是對此“大受震撼”,以至於提交了一個“阻止更改”的請求並迅速吸引了不少業內支援。一位開發人員就表示:“考驗.NET 是否真的是OSS(開源軟體專案)性質的時刻到了。”
微軟刪除“熱過載功能”,.NET 社群為啥會“大受震撼”?
微軟刪除“熱過載功能”的操作,為啥在開源.NET 看來會有這麼嚴重?
對此,.NET 社群方面表態稱,儘管“熱過載”是一種工具功能,但一旦變更,就意味著“開源的.NET SDK 正在被故意削弱,而使的 Visual Studio(一種具有簡化版的商業產品、包括微軟贊助的 Visual Studio程式碼)比競爭對手更具吸引力。
關鍵是,微軟此次變更並沒有與.NET 社群協商,這會讓.NET 基金會牽扯進無法辨別的危機中。.NET 社群表示,該問題的核心點是:微軟是否嚴肅對待.NET是一個開源平臺?開發人員工具對於微軟公司來說具有重要的戰略意義:吸引程式設計師使用該平臺。所以對於局外人來說,“刪除熱過載”的決定似乎也很奇怪。
同時,.NET 社群還表示,微軟雲是.NET的天然“destination”(目的地),因為 Visual Studio 程式碼是免費的,且是 Microsoft 在開發人員社群中有史以來最成功的產品,因此相比 VisualStudio 銷售的輕微影響,其為.NET的VS 程式碼帶來的強大支援所帶來的潛在利益則大得多。
.NET 社群透露,不僅微軟將.NET 6.0 的熱過載功能刪除,目前 macOS 和 Linux 開發人員那裡也刪除了該選項,“現在這個功能真的成為了 Windows 和 Visual Studio 開發平臺獨有的工具了”。
.NET 社群對微軟這一操作的“討伐”,目前已經得到不少開發人員的支援,該話題已經在 Twitter 上引發討論。有人指出,刪除“發生在 RC1和RC2被公開之後……在他們正式宣佈 RC1 中可用的功能將在最終產品中可用並得到支援之後。”也有開發人員問道:“如果您在 Windows 以外的平臺上積極體驗 gimp 開發經驗,怎麼能期望.NET 成為一個跨平臺開發的有效解決方案?...”
事件後續:
事情發展到現在,大家可能要問了,微軟方面的.NET 團隊對此事件有何看法?
據外媒報導,The normal evangelists 在這個問題上一直保持沉默,儘管微軟知名熱心開發倡導者 Scott Hanselman 前天確實發表了一篇文章,但沒有說明原因:誰知道,可能有聯絡。
同時,Lyalin 也在他的帖子中新增並刪除了一個標題為“2021 年 10 月 21 日更新”的部分,該部分寫道:“為了澄清,我們不會將熱過載作為 dotnet watch 工具的一項功能釋出。我們正在將所有精力投入 Visual Studio 2022。”我們不確定刪除此更新的原因,並已向微軟徵求進一步意見。
這篇文章上線前後不久,Lyalin 的部落格文章再次更新,已經恢復了上述澄清。
所以,這件事的來龍去脈究竟如何,局外人也看個熱鬧。不過在業內人士看來,這次是微軟為了“強捧”Visual Studio 2022 以佔取更多銷量,不惜把.NET 6.0 的熱過載功能變成了 Windows 和 Visual Studio 獨有工具,這一操作確實會引發開源圈同行的”質疑“。
不知道接下來事件的走向會如何發展,如果您對此事件也有不同看法,歡迎在評論區留言互動。