Win32は今も死んでいない——Microsoftが「置き換える」と宣言してから9年が経った今もなお、デスクトップアプリの主流はWin32であり続けている。2017年5月、MicrosoftはUWPをスマートフォン向けプラットフォームのイメージから切り離し、デスクトップ開発の本命として再定義しようとした。だがその転換は完全には着地しなかった。Windows Centralの編集長Daniel Rubino氏が「現代のWindowsアプリ開発を特徴づける、より柔軟でオープンなアプローチへの転換がすでに始まっていたことを示している」と振り返るこの戦略転換の瞬間に、何が起き、何が失敗したのかを検証する。
「Universal」なのに、どこでも動かない——命名の罠が開発者を遠ざけた
UWP最大の誤算の一つは、プラットフォームの名前そのものだった。「Universal Windows Platform」という言葉を聞いたユーザーのほぼ全員が「あらゆるデバイスで動作するアプリ」と解釈した。しかしMicrosoftの意図はまったく異なっていた。「Universal」とはハードウェアの多様性を指すのではなく、開発者がWindows Storeへ製品を届けるための共通ツール群——統一価格体系、共通アプリ内課金、複数デバイスへのインストール機能、統合広告ユニット——を束ねた概念だった。
Windowsストアに掲載されているアプリはすべて技術的にはUWPとみなされる。だが、それらがWindows 10 Mobile端末でも動作するかどうかはまったく別の問題だ。「どこでも動く」という期待と、Microsoftが意図した定義のあいだには、埋めようのない溝があった。Rubino氏はこの命名と説明の問題を「よく見られるテーマだ(A familiar theme, no doubt)」と指摘している。
混乱は一般ユーザーにとどまらなかった。UWPの設計思想がスマートフォン中心の視点から出発していたことが、開発者の誤解をさらに強化した。開発者にとってUWPとは、Microsoftのモバイル事業——後に同社最大の失敗の一つとして記録される——の延長線上にあるプラットフォームとして映っていた。「スマートフォンアプリ向け」という烙印は、名称の問題だけでは解消できなかった。
Windows 10 Mobileの失敗が、UWPの未来を狭めた
2017年春、Windows 10 Mobileは市場での勢いを急速に失っていた。モバイル事業の失速は、UWP戦略そのものを根本から問い直す必要を生み出した。MicrosoftがUWPのメッセージを抜本的に変更しようとしたのはこの文脈においてだ。2017年5月に開催予定だったBuild開発者会議は、その転換を宣言する重要な舞台として機能する可能性があった。新ツールの発表、改善されたXamarinサポート、クロスプラットフォーム機能の強化がそこで期待されており、UWPを「スマートフォン向け開発基盤」から「デスクトップ開発の本命」へと再定義する場として位置づけられていた。
技術的な障壁も深刻だった。MicrosoftはUWPをいずれWin32——いわゆる「クラシック」デスクトップアプリ——の代替にすることを目標としていたが、2017年時点のUWPはWin32の機能的な幅に到底及んでいなかった。毎年機能は追加されていたが、開発者がデスクトップアプリの主力をUWPへ移行するには、既存のWin32資産を捨てるコストに見合う理由が必要だった。そのコストを正当化できる水準に達する前に、プラットフォームへの信頼が損なわれていた。Microsoftの計画に詳しい関係者によれば、モバイルへの訴求をメッセージから切り離すことで、開発者のUWPへの受け入れが改善される可能性があったとされている。
9年後のWindows開発——UWPが残したもの、捨てたもの
Rubino氏は再掲載に際して明快に述べている。「これは完全には着地しなかった戦略のスナップショットだ。しかし同時に、現代のWindowsアプリ開発を特徴づける、より柔軟でオープンなアプローチへの転換がすでに始まっていたことを示している」
UWPがWin32を全面代替するという未来は実現しなかった。命名による混乱が「どこでも動く」という誤った期待を生み出し、Windows 10 Mobileの失敗との結びつきが「スマートフォン向け」という印象を固定し、Win32に対する機能的な遅れが開発者の移行コストを跳ね上げた。これら三つの構造的要因が重なった結果、デスクトップ優先への転換は完全には着地しなかった。
それでも2017年のこの動きは、Microsoftがモバイルアプリモデルへのこだわりを手放し、デスクトップ開発者の現実に向き合い始めた転換点として記録される。Rubino氏が指摘する「より柔軟でオープンなアプローチ」——つまり現代のWinUI、MSIX、そしてWin32との共存を前提としたエコシステム——の出発点がこの時期にあったと見ることができる。
Q&A
Q. UWPの「Universal」は何がUniversalなのですか? Microsoftが意図した「Universal」はデバイスの多様性ではなく、Windows Storeへ製品を届けるための共通ツール群を指す。統一価格体系・共通アプリ内課金・複数デバイスへのインストール・統合広告ユニットなど、ストア向け開発者共通機能をまとめた概念だ。Windowsストアに掲載されているアプリはすべて技術的にはUWPとみなされるが、「どこでも動く」という大多数の解釈はMicrosoftの定義から大きく外れていた。この誤解こそが、プラットフォーム普及の最大の足かせの一つだった。
Q. なぜ開発者はUWPの採用に消極的だったのですか? 技術的障壁と心理的障壁の二つが重なっていた。技術的な問題として、2017年時点のUWPはWin32ほどの機能的な幅を持っておらず、既存のデスクトップアプリを置き換えるには力不足だった。心理的な問題として、UWPをWindows 10 Mobileという失敗したプラットフォームと結びつける見方が開発者に定着していた。「スマートフォンアプリ向け」という烙印が消えないまま、デスクトップ開発者に移行を求めても採用は進まなかった。
Q. なぜUWPはWin32を結局置き換えられなかったのですか? 機能的な格差が縮まる前に、プラットフォームへの信頼が損なわれたためだ。命名による混乱、Windows 10 Mobileの失敗との結びつき、Win32に対する機能的な遅れという三つの要因が積み重なり、デスクトップ開発者の大規模な移行を引き出せなかった。UWPはモバイル中心の設計思想から出発していたため、デスクトップ開発者のニーズと噛み合わない部分が残り続け、それが移行コストをさらに押し上げる悪循環を生んだ。
Q. 2017年のBuild開発者会議では何が期待されていたのですか? 新ツールの発表、改善されたXamarinサポート、クロスプラットフォーム機能の強化が主な期待事項として挙げられていた。このBuildはMicrosoftがUWPの訴求対象をデスクトップ開発者に明確にシフトする場として位置づけられており、「スマートフォン向け」というイメージを払拭するメッセージ転換を打ち出す決定的な機会になり得ると見られていた。
