Former Microsoft CTO Jeffrey Snover, who has worked at Microsoft for 23 years, recently published a long blog post,The system combed through Microsoft's repeated swings in GUI (graphical user interface) over the past few decades, revealing the reasons why the Windows development ecosystem has become fragmented.
First, let’s take the timeline back to the 1980s. The Win16 and Win32 APIs at that time provided a consistent development paradigm for all Windows developers. Developers only need to learn one set of things to cover almost all Windows application scenarios.
"Programming Windows" written by technical author Charles Petzold is 852 pages long and is regarded as the bible of desktop application development.
In the 1990s, Microsoft tried to use MFC, COM, OLE, ActiveX and other technologies to break through the limitations of Win32. Snover pointed out,These component architectures "penetrate every corner of Windows development and introduce unprecedented levels of cognitive complexity."
At the developer conference, Microsoft's technology narrative became fragmented, with Snover unkindly describing the keynote as "keynote clusterf*ck."
In 2003, Microsoft demonstrated the technical vision of Windows Longhorn, in which Avalon (later renamed WPF) was based on the GPU-accelerated XAML vector rendering subsystem and was extremely technically powerful. However, in August 2004, Microsoft made a sudden change and required all new development to use C++.
Although WPF was released with Windows Vista, Windows Shell itself did not adopt it, a decision that planted a deep rift between the Windows engineering team and the .NET team.
Snover pointed out that internal conflicts ultimately led to the abandonment of WPF, the death of Silverlight, and the doomed failure of UWP (Universal Windows Platform) as soon as it was born.
In 2007, after WPF had proven its strength, Microsoft turned to Silverlight again.
In 2010, Microsoft suddenly announced that Silverlight was not suitable for cross-platform development and that HTML5 was the future direction. Silverlight was only used for Windows Phone development. A large number of developers who had bet on Silverlight were caught off guard.
Fast forward to the release of Windows 8 in 2012, which introduced the WinRT runtime based on native C++. The Windows team's hostility towards .NET caused ten years of investment in the latter to be abandoned in an instant. Snover described the chaotic situation this way:
"Microsoft is telling two stories at the same time. The Windows team is working on WinRT, and the .NET team is still promoting WPF. Different buildings, different vice presidents, and different roadmaps.
What developers heard at //Build 2012 was: the future is WinRT, while HTML+JS is first class, while .NET is still available, and C++ is back, and you should be writing Metro apps, while your WPF code runs just fine. This isn't strategy, this is The Hunger Games, with six teams vying for your attention.
Enterprise developers took one look at UWP's sandboxing mechanism, forced app store distribution, and missing Win32 API, and turned away. "
Snover pointed out that in the past 14 years, Microsoft has turned to recommending Windows GUI frameworks 14 times. Today, there are 17 GUI technologies coexisting on the Windows platform, covering 5 programming languages:
Microsoft native framework:Win32 (1985), MFC (1992), WinForms (2002), WPF (2006), WinUI 3 (2021), MAUI (2022)
Microsoft Web Hybrid Solution:Blazor Hybrid, WebView2
Third-party solutions:Electron (used by VS Code, Slack, and Discord,Snover specifically pointed out that this is currently the most widely deployed desktop GUI technology on Windows, and Microsoft has nothing to do with it), Flutter (Google), Tauri, Qt, React Native for Windows, Avalonia (used by JetBrains, GitHub, Unity, Snover satirized these developers as "no longer waiting for Microsoft"), Uno Platform, Delphi, Java Swing/JavaFX
Snover used the coined term "boof-a-rama" to describe the current situation as smart people doing dumb things. He emphasized that the technologies introduced by Microsoft are often not bad in themselves. What really kills them is not technical flaws, but internal politics, premature announcements of changes at developer conferences, and confusing business strategies.
Petzold's "Programming Windows" has not been updated since the sixth edition in 2012 (covering Windows 8/WinRT), which is perhaps the best footnote to this unpredictable fragmentation.
Snover joined Microsoft in 1989 and served successively as Partner Architect, Distinguished Engineer (2009), Technical Fellow and Chief Architect (2015), and CTO (2019). He left to join Google in 2022 and officially retired in 2025. With his understanding of Microsoft's internal operating model, the credibility of this blog post is self-evident.
