L'ancien CTO de Microsoft, Jeffrey Snover, qui travaille chez Microsoft depuis 23 ans, a récemment publié un long article de blog :Le système a passé au peigne fin les changements répétés de Microsoft en matière d'interface utilisateur graphique (GUI) au cours des dernières décennies, révélant les raisons pour lesquelles l'écosystème de développement Windows est devenu fragmenté.

Tout d’abord, remontons la chronologie aux années 1980. Les API Win16 et Win32 fournissaient à l'époque un paradigme de développement cohérent pour tous les développeurs Windows. Les développeurs n’ont besoin d’apprendre qu’un seul ensemble de choses pour couvrir presque tous les scénarios d’application Windows.

"Programming Windows" écrit par l'auteur technique Charles Petzold compte 852 pages et est considéré comme la bible du développement d'applications de bureau.

Dans les années 1990, Microsoft a tenté d'utiliser MFC, COM, OLE, ActiveX et d'autres technologies pour dépasser les limites de Win32. Snover a souligné,Ces architectures de composants « pénètrent dans tous les recoins du développement Windows et introduisent des niveaux de complexité cognitive sans précédent ».

Lors de la conférence des développeurs, le discours technologique de Microsoft s'est fragmenté, Snover décrivant méchamment le discours d'ouverture comme "keynote clusterf*ck".

En 2003, Microsoft a démontré la vision technique de Windows Longhorn, dans laquelle Avalon (renommé plus tard WPF) était basé sur le sous-système de rendu vectoriel XAML accéléré par GPU et était extrêmement puissant techniquement. Cependant, en août 2004, Microsoft a procédé à un changement soudain et a exigé que tous les nouveaux développements utilisent le C++.

Bien que WPF ait été publié avec Windows Vista, Windows Shell lui-même ne l'a pas adopté, une décision qui a creusé un profond fossé entre l'équipe d'ingénierie Windows et l'équipe .NET.

Snover a souligné que des conflits internes ont finalement conduit à l'abandon de WPF, à la mort de Silverlight et à l'échec voué à l'UWP (Universal Windows Platform) dès sa naissance.

En 2007, après que WPF ait prouvé sa solidité, Microsoft s'est à nouveau tourné vers Silverlight.

En 2010, Microsoft a soudainement annoncé que Silverlight n'était pas adapté au développement multiplateforme et que HTML5 était l'orientation future. Silverlight n'a été utilisé que pour le développement de Windows Phone. Un grand nombre de développeurs qui avaient parié sur Silverlight ont été pris de court.

Avance rapide jusqu'à la sortie de Windows 8 en 2012, qui a introduit le runtime WinRT basé sur le C++ natif. L'hostilité de l'équipe Windows envers .NET a fait abandonner en un instant dix années d'investissement dans ce dernier. Snover a décrit ainsi la situation chaotique :

"Microsoft raconte deux histoires en même temps. L'équipe Windows travaille sur WinRT et l'équipe .NET continue de promouvoir WPF. Différents bâtiments, différents vice-présidents et différentes feuilles de route.

Ce que les développeurs ont entendu lors de //Build 2012 était : l'avenir est WinRT, tandis que HTML+JS est de première classe, tandis que .NET est toujours disponible, et C++ est de retour, et vous devriez écrire des applications Metro, pendant que votre code WPF fonctionne très bien. Ce n'est pas de la stratégie, c'est The Hunger Games, avec six équipes rivalisant pour attirer votre attention.

Les développeurs d'entreprise ont jeté un coup d'œil au mécanisme de sandboxing d'UWP, à la distribution forcée de l'App Store et à l'API Win32 manquante, et ont refusé. "

Snover a souligné qu'au cours des 14 dernières années, Microsoft a recommandé 14 fois les frameworks d'interface graphique Windows. Aujourd’hui, 17 technologies GUI coexistent sur la plateforme Windows, couvrant 5 langages de programmation :

Framework natif Microsoft :Win32 (1985), MFC (1992), WinForms (2002), WPF (2006), WinUI 3 (2021), MAUI (2022)

Solution hybride Web Microsoft :Blazor hybride, WebView2

Solutions tierces :Electron (utilisé par VS Code, Slack et Discord,Snover a spécifiquement souligné qu'il s'agit actuellement de la technologie d'interface graphique de bureau la plus largement déployée sous Windows, et que Microsoft n'y est pour rien.), Flutter (Google), Tauri, Qt, React Native pour Windows, Avalonia (utilisé par JetBrains, GitHub, Unity, Snover a fait la satire de ces développeurs en les disant "n'attendant plus Microsoft"), Uno Platform, Delphi, Java Swing/JavaFX

Snover a utilisé le terme inventé « boof-a-rama » pour décrire la situation actuelle comme celle de personnes intelligentes faisant des choses stupides. Il a souligné que les technologies introduites par Microsoft ne sont souvent pas mauvaises en elles-mêmes. Ce qui les tue vraiment, ce ne sont pas les défauts techniques, mais la politique interne, les annonces prématurées de changements lors des conférences de développeurs et les stratégies commerciales confuses.

"Programming Windows" de Petzold n'a pas été mis à jour depuis la sixième édition en 2012 (couvrant Windows 8/WinRT), ce qui est peut-être la meilleure note de bas de page sur cette fragmentation imprévisible.

Snover a rejoint Microsoft en 1989 et a occupé successivement les postes d'architecte partenaire, d'ingénieur émérite (2009), de chercheur technique et d'architecte en chef (2015) et de CTO (2019). Il a rejoint Google en 2022 et a officiellement pris sa retraite en 2025. Grâce à sa compréhension du modèle opérationnel interne de Microsoft, la crédibilité de cet article de blog va de soi.