驱动之家 昨天
微软前CTO长文控诉:Windows被搞成一锅粥!14年14次转变、17种GUI共存
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

快科技 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 年正式退休,以他对微软内部运作模式的了解,这篇博文的可信度不言而喻。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

windows 微软 c++ cto
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论