微軟最後一刻砍掉.NET 6 熱過載程式碼功能,激怒開源社群
10 月 23 日訊息,據外媒 TheVerge 報道,在薩蒂亞・納德拉接手了微軟CEO 一職後,這家公司開始著手擁抱開源。先是微軟公司斥資 57 億美元收購了在世界範圍內擁有眾多開發者的開源託管平臺 GitHub,而後薩蒂亞・納德拉又在開發者大會上主動傳達了對 Linux 和開源社群的熱愛。
但本週微軟在即將釋出的.NET 6 中悄悄地刪除了熱過載(Hot Reload)中的一個關鍵部分。瞭解到,該功能可以讓開發人員在建立專案時獲得實時的反饋,在修改程式碼後,可以立刻看到結果。
熱過載對於其競爭對手谷歌的 Dart 語言和 Flutter 開發套件而言,是微軟.NET 框架一個極大的優勢,且微軟一直積極想將它引進到.NET 和 Visual Studio 的整合開發環境裡。
微軟在最初的計劃中描述,要將熱過載功能帶給儘可能多的開發者。然而在最後一刻計劃的改變,又將.NET 侷限在了只在 Windows 平臺上使用 Visual Studio 的一小部分開發人員,而不是面向開源和跨平臺使用。
微軟一直在測試接近最終版本的 .NET 6 候選釋出(RC)版本,允許開發者通過 dotnet watch 在各種配置環境和平臺上使用熱過載功能,包括目前流行的 VS Code 開發環境。候選釋出版本意味著微軟認為此版本功能完整並可以對外發布,並已經儘可能修復了在測試期間發現的各種錯誤。
但隨著本週早些時候微軟對外宣佈的修改內容,熱過載功能又只會在 Visual Studio 2022 中啟用。對此,負責該功能的微軟專案經理 Dmitry Lyalin 給出的理由是,此舉是為了向大多數的使用者提供最佳的體驗。
但在 GitHub 上,有大量開發者對此舉動表達了不滿,Hacker News 和微軟官方播客文章下的評論區也是一片罵聲。曾在微軟 F#團隊工作的工程師 Phillip Carter 在評論中寫道:“在查閱原始碼後,我發現了一個讓人倍感失望的事實,熱過載功能的程式碼只有 1000 到 2000 行左右,但這個功能最後還是沒能留住。作為一個最初就是面向開源和多平臺的功能,微軟這麼做是一個明顯的退步,我不希望微軟就此走上回頭路。”
瞭解到,將熱過載功能從.NET 6 中刪除的舉措是由微軟開發者部門的負責人 Julia Liuson 最終拍板的。據知情人士描述說,此舉是一個由商業性質的決定。但是對於那些長期對開源社群從事.NET 相關工作的微軟工程師看來,連他們都感受到了深深的傷害與背叛,更不用說是普通的開發者了,他們甚至擔心這一決定會對微軟後續的開源工作產生長久不利的影響。
TheVerge 表示已經就.NET 6 的功能變化和.NET 基金會的問題聯絡了微軟,但微軟目前暫時未發表任何宣告和回覆。