WinUI 3を内包するWindows App SDKの進捗は順調ながら、Microsoftが現地時間2021年10月18日にGitHubへ投稿した内容を見ると、UWP(Universal Windows Platform)に対する消極的な姿勢を色濃く感じた。
MicrosoftはWindows App SDKが「既存のデスクトップAPIと互換性があるため、基盤として使用できる。さらにUWPへの投資をデスクトッププロジェクトの種類で利用しやすくし、AIやFluentデザインなどの新しい機能を実現する」と述べている。これは、UWP開発への投資をWin32に振り戻すという文言だ。さらに「UWPプロジェクトの種類で.NET 5/6 を使用する必要がある場合は、プロジェクトをWinUI 3デスクトッププロジェクトに移行することを推奨する」とある。こちらは端的に.NET 5/6の使用不可を意味する。
発言者はMicrosoftの社員としてWindows App SDKの開発に参加している方だが、一個人の発言だったとしても重みがある。すでにMicrosoftの公式ドキュメントでも、UWPアプリ単独で使用するUI機能に依存するAPIは、Windows App SDKへマッピングさせるなど、移行手順を紹介している。
上図は2015年7月当時の日本マイクロソフトによるプレゼンテーションのスライドだ。UWPはWebアプリやWin32アプリ、AndroidやiOSを内包するプラットフォームになり得ると説明していたが、結果的に広くは行き渡っていない。そもそもUWPはWindows 8.x時代のWinRT(Windowsランタイム)や、Windows Phone用WinRTなどを統合する形で誕生したプラットフォームだ。つまり、開発者はWin32からWinRT、WinRTからUWPと移行をうながされてきたが、再びWin32へ戻ることとなる。
Windows App SDKはWin32やUWPアプリを開発するための基盤を含んでいるため、単純に退化したとはいえない。ロードマップを見れば、Win32とUWPの長所を融合させたSDKであることが分かる。さらに先の投稿では、「WinUI 2.xと Windows SDKは、バグ、信頼性、セキュリティ修正など、UWPプロジェクトの種類を引き続きサポートする」と述べているように、今後も一定期間はUWPは生き延びる。
しかし、新機能の開発を継続しなくなったMicrosoft製品がどのよう経緯をたどるかは明らかだ。Microsoftの判断は消費者に直接の関係はないが、Windows関連の開発者には大きな影響と混乱を与え、Windowsのソフトウェア資産増に歯止めをかける可能性がある。ひねった見方だが、MicrosoftはWSLg(Windows Subsystem for Linux GUI)やWindows Subsystem for Androidを取りそろえることで、マルチプラットフォーム環境を目指しているのではないだろうか。確かなのはWindows 8.x時代から続いたUWPとの付き合いが終わることだ。