起首将时光线拉回1980年代,当时的Win16和Win32 API为所有Windows开辟者供给了一致的开辟范式,开辟者只须要学一套器械,就能覆盖几乎所有Windows应用处景。

技巧作者Charles Petzold撰写的《Programming Windows》长达852页,被视为桌面应用开辟的圣经。

在开辟者大年夜会上,微软的技巧叙事项得支离破裂,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

到了1990年代,微软试图用MFC、COM、OLE、ActiveX等技巧冲破Win32的局限性,Snover指出,这些组件架构“渗入渗出了Windows开辟的每个角落,引入了前所未有的认知复杂度”。

第三方筹划: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年正式退休,以他对微软内部运作模式的懂得,这篇博文的可托度不问可知。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部