WindowsのGUI戦略が30年間破綻し続けた理由を元CTOが暴露

「新しいWindowsデスクトップアプリを作るなら、どのフレームワークを使うべきか?」——この問いに、Microsoftは30年間まともに答えられていない。その内幕を、かつて中枢にいた人物が語り始めた。

WindowsのGUI戦略が30年間破綻し続けた理由を元CTOが暴露

「新しいWindowsデスクトップアプリを作るなら、どのフレームワークを使うべきか?」——この問いに、Microsoftは30年間まともに答えられていない。その内幕を、かつて中枢にいた人物が語り始めた。


17種類のGUI技術が共存する異常事態

WindowsのGUI開発環境は、現在17種類ものフレームワークが並存する混沌のただ中にある。Win32、MFC、WinForms、WPF、WinUI 3、MAUI、Blazor Hybrid、WebView2——Microsoft製だけでこの有様だ。さらにElectron、Flutter、Tauri、Qt、Avaloniaといったサードパーティ製を加えると、5つのプログラミング言語と3つのレンダリング哲学が入り乱れる。

17種類のフレームワーク、5つの言語、3つのレンダリング哲学。この惨状を「boof-a-rama(優秀な人間が愚かなことをする状態)」と命名したのは、PowerShellの生みの親にしてMicrosoft元CTOのジェフリー・スノーバーだ。1999年から2022年までの23年間をMicrosoftで過ごし、2022年にGoogleへ移籍、2026年1月に引退した人物が、退職後のブログで古巣の構造的欠陥を赤裸々に描いている。この告白はNeowinをはじめ複数のテックメディアに取り上げられ、開発者コミュニティで反響を呼んでいる。

Microsoft Hasn’t Had a Coherent GUI Strategy Since Petzold
A few years ago I was in a meeting with developers and someone asked a simple question: “What’s the right framework for a new Windows desktop app?” Dead silence. One person sugges…

技術そのものは悪くなかった、とスノーバーは強調する。WPFもSilverlightもXAMLも、技術としては優れていた。問題は、その技術を殺したのが常に「組織」だったということだ。

1988年が最後の「明確な答え」だった

Jeffrey Snover's blog

話は1988年まで遡る。チャールズ・ペゾルドが852ページの『Programming Windows』を出版した年だ。Win16 API、C言語、ひとつのメンタルモデル。スノーバーはこれを物理学のF=maに例える。シンプルで、強力で、誰もが学べた。

ペゾルドが表していたのは「良い本」ではない。信頼のシグナルだった。ひとつのAPI、ひとつの答え、ひとつのコミットメント。それ以降のすべてが、その約束を少しずつ壊していった。

1990年代に入ると、MicrosoftはWin32の限界を補うためにMFC、COM、OLE、ActiveXを次々と投入した。しかしこれらはGUIフレームワークですらなかった。コンポーネントアーキテクチャという名の部品だけを渡し、開発者には物語を自力で組み立てるよう求めたのだ。


WindowsチームとNETチームの13年戦争

WindowsのGUI混迷は、Windowsチームと.NETチームの内部抗争に根を持つ。その対立構造は現在も尾を引いている。

2003年のPDC(Professional Developers Conference)で披露されたLonghornのビジョンは本物だった。GPU加速のベクターベースUI「Avalon」(後のWPF)に、開発者たちは熱狂した。だが2004年8月、開発は全面リセットされる。内部メモで「豚」と評されたLonghornは葬られ、新たな指令が下った——マネージドコード禁止、すべてC++で書け

Windowsチームは.NETへの賭けが「社史上最も恥ずかしい失敗」を生んだと見なしていた。この怨恨が13年にわたる組織内戦争を引き起こし、WPFを孤児にし、Silverlightを葬り、UWPを失敗に導いた。

開発者が最後に知る「方針転換」

Silverlightの死に方は象徴的だ。2010年のMIXカンファレンスで、あるMicrosoft幹部がQ&Aの場で突然「Silverlightはクロスプラットフォーム戦略ではない」と宣言した。Silverlightチーム自身がこの発言を事前に知らされていなかった。LOBアプリケーションを賭けていた開発者たちは、カンファレンスのQ&Aで自分たちの未来を知ったのだ。

スノーバーはこのパターンが繰り返されてきたと指摘する。2012年のWindows 8ではWinRTが登場し、.NETへの10年分の投資が突然切り捨てられた。//Build 2012で開発者が聞いたメッセージは、こうだ——WinRTが未来だ、でもHTML+JSも一流だ、.NETもまだ使える、C++も復活した、Metroアプリを書け、でもWPFコードも動く。

スノーバーはこの状況を「6つのチームが注目を奪い合うハンガーゲームの舞台」と表現した。戦略ではない。生存競争だ。

Electronが勝ったのは「信頼の判定」だった

現在、Windowsデスクトップで最も広く使われているGUI技術はElectronだ。VS Code、Slack、Discord——いずれもChromium+Node.jsで動いている。Microsoftが作ったものではない。

14年間で14回のピボットを繰り返した末に、開発者たちが出した結論は明快だった。Microsoftを待つのをやめよう。AvaloniaプロジェクトはWPFの精神的後継としてJetBrainsやGitHubに採用され、Uno Platformは本家よりWinUIに忠実だと評される始末だ。

一方でMicrosoftはWindows App SDK 2.0のExperimental版を開発中だが、安定版は1.8系にとどまる。公式ドキュメントでは「WinUI 2」が「WinUI for UWP」に、「WinUI 3」が単に「WinUI」に改名された。用語の整理をしている時点で、戦略が固まっていないことを自ら証明しているようなものだ。


技術の失敗ではなく、組織の失敗

スノーバーの分析で最も刺さるのは、すべての失敗を3つの原因に集約した点だ。チーム間の政治闘争、カンファレンス基調講演が駆動する時期尚早なプラットフォーム賭け、そして開発者を置き去りにするビジネス戦略の転換。技術的失敗はひとつもない。

ペゾルドは『Programming Windows』の第6版(Windows 8/WinRT対応)を2012年に出した後、執筆をやめた。技術は良かった。だが組織が壊した。正直なところ、ペゾルドの判断は正しかったのかもしれない。

フルライフサイクル——採用・投資・保守・移行——をカバーする「成功の妥当な理論」があるか、カンファレンス基調講演があるか。一方は戦略で、もう一方は30年のboof-a-ramaだ。

問題は、Microsoftが次の「ペゾルド」を——つまり、ひとつの明確な答えを——いつ用意できるのか、ということだ。あるいは、もうその必要がなくなったのか。開発者たちはすでに、自分たちで答えを見つけてしまったのだから。


#Windows #Microsoft #GUI #WinUI #WindowsAppSDK #開発者 #情報の灯台