前回の「マイクロソフトのネイティブアプリへの回帰」について(パート1) で、時系列でマイクロソフトの動きを紹介しましたが、今回の動きが「回帰」なら、いままでWindowsのアプリは一体どこに向かっていたのか、という点について書いてみたいと思います。
米マイクロソフトのWindows部門のトップであるPavan Davuluriが「Our commitment to Windows quality」というブログを2026年3月20日付けで公開して改善を約束したちょうど1週間前、とあるブログ記事が非常に注目を集めました。
2026年3月13日付の元マイクロソフトのアーキテクトでWindows PowerShellを作ったJeffrey Snoverによる、「Microsoft Hasn’t Had a Coherent GUI Strategy Since Petzold」というブログ記事です。これにはHacker Newsの反応のみならず、さまざまの反響がありました。
「マイクロソフトはWin32 API 以降、一貫性のあるGUIアプリ開発の戦略を持ち合わせていない」という主題で、歴史的な経緯と背景の問題について非常に詳しく書かれているのでぜひ全文を翻訳かましてでも読んで頂きたいと思います。
その後、2026年3月22日、「Windows Native App Development Is a Mess」というブログ記事もまたHacker Newsで話題になりました。「Windowsのネイティブアプリ開発は滅茶苦茶だ」というもの。
はい、おっしゃる通りでございます。
関連で、2026年3月23日、「Microsoft's "Fix" for Windows 11: Flowers After the Beating」というブログが、マイクロソフトの発表にたいする反応として、これまたHacker Newsで話題になりました。
「直すって言ってるけど、そもそも広告やらAIとか無理やり押し込んできたくせに何をいまさら」的な痛烈な批判・・・。
このように、「マイクロソフトのネイティブアプリへの回帰」に前後して、マイクロソフトのGUIアプリ開発にまつわる技術の混沌さとその歴史的経緯に注目が集まった時期でもありました。
自分的には、マイクロソフトのGUI戦略を大まかに時代別に分類するとしたら、以下のようになります。
- Win32API 世代
Windows 95・98 以降。C++(MFC等)、Visual Basic 6、Delphi等。
- .NET 世代
Windows Vistaから。.NETのWindows FormsとWPF。
- WinRT 世代
Windows 8.0で登場。Win32APIを排したWinRT限定の全画面タッチ画面ファーストのモバイル兼用「Metro UI」(意匠の問題で後に「Modern UI」に改名)。Windows10からUWPとして再登場。
- WinAppSDK 世代
UWPを廃止して、WinRTとWin32APIを両方使えるようにしたWinUI3(Fluent UI)と、モバイル向けのMAUI。
個人的には、現在の混沌の直接的な原因はWinRT にあると思っています(その起源はAvalonの失敗にあるにせよ)。
この2012年に登場したWindows 8.0におけるWinRTの「Metro UI」(意匠の問題で後に「Modern UI」に改名)は、Windows史上最悪のUIで、いきなりデスクトップOSというより中途半端なタッチファーストのタブレットOS化をしてしまったのです。同時に、WPFモドキでとても中途半端で劣化版と言えるWinRT限定のUWPという新たなアプリケーション形態も発表し、これをWindowsにおける唯一の既定と位置づけました(後に撤回)。
つまり、ガチガチに制約を課した上で、過去のWin32API世代と.NET世代を両方ともバッサリと切り捨てたのです。これは開発者に対する敵対行為であり、最大の裏切り行為と言っても過言ではありません。
このUWPは、iOSアプリやAndroidアプリに対抗したユニバーサルなWindows版という位置づけで、Windows Phone向けの携帯アプリと共通化しているため制約がガチガチで、サンドボックス化され、デスクトップ向けの機能が根本的に欠如していたにも関わらずです。(以前書いた記事「なぜUWPは「ダメ」なのか」)
この事件により、デスクトップ開発をしていた人達が、一斉にWeb開発へ流れます。Ajax全盛時代でしたしね。自分もWindowsの将来すら考えたものです。Linuxへ行くか、Macへ行くか、みたいな。デスクトップGUIアプリ開発者にとってはそれほど大きな方針変更でありました。後の評価では、AppleのiPhoneに対する恐怖によるマイクロソフトのパニックの結果という意見もあるようですが、単に愚かな決断としか言いようがありません。
自分はWindows 8.0が登場した際、ノートパソコンを新調したのですが、わくわくで起動した瞬間、全画面のメトロスタイルに困惑して頭を抱えるほどショックだった記憶があります。Windows 8.1で多少揺り戻しましたがWinRTベースのアプリの酷さに呆れて、速攻でLinuxをデュアルブートでインストールして切り替えてしまいました。
このように、自分を含めた大多数のアプリ開発者はWinRTの「Metro UI」とUWPを完全に見捨て、マイクロソフトのアプリストアは閑散とすることになります。2015年のWindows10の登場でUWPとなり、その後、徐々に制約は少しだけ緩んで行きましたが、既に時は遅し。Windows Phoneも無くなり、UWPの存在意義すらなくなります。
UWPを嫌ってアプリはどんどんWeb化し、2013年に登場したElectronによってWebアプリをラップしてデスクトップアプリ化するのが大々的に普及します。
2020年の5月19日、ついにマイクロソフトは間違いを認め、「Project Reunion」構想を発表します。これが後の「WinAppSDK」です。Reunionというのは、従来のWin32APIベースのデスクトップアプリと、WinRTベースのアプリの「再融合」を謳うものであります。(Windows部門と.NET部門の仲直りという暗の意味もありそう)
2021年のWindows 11のリリースでFluent UIが登場し、WinAppSDK(WinUI3)は同年の11月に公開されましたが、UWPという過去の負の遺産を引きずり、本来のデスクトップアプリに必要な機能が大幅に欠如したままで、バグだらけの状態を放置し続ける、という状況で、未だに本格的な普及には至っていません。
結果として、Windows 11自体も未だに古きWin32APIのアプリと10時代の「Metro UI」とUWPが混在したUIで破綻したまま長きに渡って放置されてきました。ダークモードにしていると特に分かり易くて、Windowsのシステムアプリを開くと度々真っ白な画面が登場して目つぶしを食らいます。Zip解凍の画面とかサービスのアプリとか、諸々。さらに「ストア」や「設定」アプリは未だにUWPのまま、WinUI3に移行できていません。
もっとも酷い例はOutlookですね。ネイティブアプリだったOutlookが見苦しい上に使いにくい上にリソース食いで単なるウェブアプリをラップしただけの代物になった際、英語圏では普通にテック系のメディアからでさえゴミクソアプリ呼ばわりされていました。
原因としては、マイクロソフトによるWindowsとネイティブアプリへの優先度が低く、リソースの投資が不十分で、WinAppSDKにおけるリーダーシップ不在、優秀な人材も配置されずといったことですが、究極的にはトップ(サティア ナデラ)の問題。
マイクロソフトはお金になるサブスクリプション形式のOneDriveとかCopilot、Azure とかのクラウドサービスで儲けてるから、Windowsはサブスクリプションに誘導するためだけの場と化しつつありました。アカウント強制に広告まみれにAIのごり押しはそういう理由。
以上が「マイクロソフトのネイティブアプリへの回帰」にいたる背景です。つまり、「2012年に登場したWindows 8.0のWinRT」から「2026年の現在」までの14年間もの間、過去のGUI技術は更新されず古臭い、かといってWinAppSDK(WinUI3)は未熟すぎてまともに使い物にならない・・・という、にっちもさっちもいかないネィテイブアプリの開発状況が続いてきたのです。それがメモリ食いのElectron等の台頭を招いたとも言えます。
もし今回の「マイクロソフトのネイティブアプリへの回帰」によって、マイクロソフト内で優先度が上がり、「ドッグフーディング(自社利用)」が増えることによって、WinAppSDK(WinUI3)の品質と機能が向上すれば、やっと再びWindowsにおけるネイティブアプリ開発も盛り上がり、WindowsのUIも一貫性のあるものになっていくと期待が少し出てくることになります。
ただ、失った開発者の信頼が戻るには相当の時間とマイクロソフトの具体的な変革が求められるでしょう。
続き
torum.hatenablog.com