快科技3月25日消息,前微軟CTO、在微軟效力23年的Jeffrey Snover近日發布長篇博文,系統梳理了微軟過去數十年間在GUI(圖形用戶界面)上的反復搖擺,揭示了Windows開發生態為何走向碎片化的原因。
首先將時間線拉回1980年代,當時的Win16和Win32 API為所有Windows開發者提供了一致的開發范式,開發者只需要學一套東西,就能覆蓋幾乎所有Windows應用場景。
技術作者Charles Petzold撰寫的《Programming Windows》長達852頁,被視為桌面應用開發的圣經。
到了1990年代,微軟試圖用MFC、COM、OLE、ActiveX等技術突破Win32的局限性,Snover指出,這些組件架構"滲透了Windows開發的每個角落,引入了前所未有的認知復雜度"。
在開發者大會上,微軟的技術敘事變得支離破碎,Snover毫不客氣地將當時的主題演講形容為"keynote clusterf*ck"。
2003年,微軟展示了Windows Longhorn的技術愿景,其中Avalon(后更名為WPF)基于GPU加速的XAML矢量渲染子系統,技術實力極為強大。然而2004年8月,微軟突然轉向,要求所有新開發使用C++。
WPF雖然隨Windows Vista發布,但Windows Shell本身并未采用它,這一決策在Windows工程團隊和.NET團隊之間埋下了深深的裂痕。
Snover指出,內部矛盾最終導致WPF被棄養、Silverlight死亡、UWP(通用Windows平臺)一出世就注定失敗。
![]()
2007年,微軟在WPF已經證明自身實力的情況下,再次轉向推出Silverlight。
2010年,微軟突然宣布Silverlight不適用于跨平臺開發,HTML5才是未來方向,Silverlight僅用于Windows Phone開發,大量押注Silverlight的開發者措手不及。
快進到2012年Windows 8發布,引入了基于原生C++的WinRT運行時,Windows團隊對.NET的敵意導致后者十年的投資被瞬間拋棄。Snover這樣描述當時的混亂局面:
"微軟內部同時在講兩個故事,Windows團隊在搞WinRT,.NET團隊還在推WPF。不同的樓,不同的副總裁,不同的路線圖。
開發者在//Build 2012上聽到的是:未來是WinRT,同時HTML+JS是一等公民,同時.NET還能用,同時C++回來了,同時你應該寫Metro應用,同時你的WPF代碼跑得很好。這不是戰略,這是《饑餓游戲》,六個團隊在爭奪你的注意力。
企業開發者看了一眼UWP的沙箱機制、強制應用商店分發以及缺失的Win32 API,轉身就走。"
Snover指出,過去14年間,微軟在推薦Windows GUI框架方面轉向了14次,如今的Windows平臺上共存著17種GUI技術,覆蓋5種編程語言:
微軟原生框架:Win32(1985)、MFC(1992)、WinForms(2002)、WPF(2006)、WinUI 3(2021)、MAUI(2022)
微軟Web混合方案:Blazor Hybrid、WebView2
第三方方案:Electron(VS Code、Slack、Discord都在用,Snover特別指出,這是目前Windows上部署最廣泛的桌面GUI技術,而微軟跟它毫無關系)、Flutter(Google)、Tauri、Qt、React Native for Windows、Avalonia(JetBrains、GitHub、Unity在用,Snover諷刺這些開發者"不再等微軟了")、Uno Platform、Delphi、Java Swing/JavaFX
Snover用自創的詞"boof-a-rama"來形容當前局面為聰明人在做蠢事,他強調,微軟推出的技術本身往往并不差,真正殺死它們的不是技術缺陷,而是內部政治、開發者大會上過早宣布轉向、以及混亂的商業戰略。
Petzold的《Programming Windows》在2012年第六版(覆蓋Windows 8/WinRT)之后便不再更新,或許就是對這種不可預測的碎片化最好的注腳。
Snover于1989年加入微軟,歷任Partner Architect、Distinguished Engineer(2009)、Technical Fellow兼首席架構師(2015)、CTO(2019),2022年離職加入Google,2025年正式退休,以他對微軟內部運作模式的了解,這篇博文的可信度不言而喻。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.