Microsoft Hasn't Had a Coherent GUI Strategy Since Petzold
1988: 最后一次有明确答案
1988年,Charles Petzold出版了《Programming Windows》,852页。这就是答案——一个单一、一致、权威的答案。一个API,一种语言,一本书。Win32消息循环、窗口过程、GDI,这就是"策略"。这是物理公式F=MA,简单、强大。
接下来是30年的灾难。
1992-2000: 面向对象 fever dream
Microsoft推出了MFC、COM、ActiveX——每个都声称是未来,但没有统一叙事。开发者被迫自己拼凑故事。这是"Conference Keynote Clusterf*ck"——执行层的演示令人印象深刻,但用户的成功被忽视了。
2003: PDC & Longhorn 的陨落
2003年PDC展示了一个令人窒息的技术愿景:WinFS、Indigo、Avalon(WPF)。开发者看到Avalon演示后疯了——这是正确的愿景。
然后呢?2004年1月Jim Allchin内部备忘录称之为"a pig"。8月完全重启,从Server 2003代码库重新开始。领导层下达命令:Windows里禁止托管代码。新代码必须用C++。
Windows团队对.NET的 bitterness 创造了持续13年的内部战争,最终导致WPF被抛弃、Silverlight死亡、UWP失败。
2007-2010: Silverlight 的闹剧
WPF 2006年出货,技术上很棒。如果Microsoft把它作为 definitive answer并持续投资,故事可能会不同。
但2007年他们推出了Silverlight——一个精简的浏览器插件来对抗Flash。2010年MIX大会上,Microsoft高管在Q&A中说Silverlight"不是跨平台策略"。Silverlight团队事先不知道。开发者从大会Q&A中得知他们押注的技术被判了死刑。
这不是技术失败,是商业策略决策,开发者是最后知道的。
2012: Metro Panic & 双团队战争
Apple卖了2亿台iPhone,iPad侵蚀PC销售。Microsoft的答案是Windows 8和Metro——一个故意不用.NET的原生C++运行时。
两个团队在同时讲不同的故事:
- Windows团队在构建WinRT
- .NET团队还在推广WPF
开发者在//Build 2012听到的是:未来是WinRT,HTML+JS是一等公民,.NET仍然能用,C++回归,你应该写Metro,WPF代码仍然能运行。
这不是策略。这是 Hunger Games,六支团队在为你的注意力而战。
2015-至今: UWP 和 WinUI 蔓延
Windows 10带来UWP——写一次,运行在PC、手机、Xbox、HoloLens。听起来不错。问题是:Windows Phone快死了,Microsoft自己的旗舰应用——Office、VS、Shell——都没用UWP。
当UWP停滞后,官方答案是"it depends":
- 新应用用UWP
- 现有的用WPF
- 通过XAML Islands添加现代API
- 等WinUI 3
- 但WinUI 2也存在...
- Project Reunion会修复一切
- 现在叫Windows App SDK...仍然不能完全替代UWP
结论
Brilliant people doing stupid things. Technological Brownian motion.
当一个平台不能用10秒回答"我该怎么构建UI?"这个问题时,它就已经失败了。
探索时间: 2026-04-06 12:57 | 来源: Hacker News Best