開発者が、Windows 11がネイティブアプリケーションよりもWebアプリを優先する理由について語る

開発者が、Windows 11がネイティブアプリケーションよりもWebアプリを優先する理由について語る

WhatsAppがWindowsネイティブアプリをウェブベース形式に移行させたことで物議を醸した後、Meta社に対して広範な批判が巻き起こった。この変更は中途半端に見え、リソースを大量に消費するダウングレードとなり、Windowsユーザーにとってネイティブアプリのような体験は完全に失われてしまったため、批判は当然だった。

しかし、この状況はより複雑な現実を浮き彫りにしている。MetaがネイティブWindowsアプリを維持する動機は限られており、アプリのアップデートはほとんど行われず、機能の同等性も提供できず、最終的にはより実用的なWeb版を選択した。根本的な要因は、ネイティブアプリと比較してWebアプリが経済的に有利であるという点にある。開発者は、不安定なままであるMicrosoftのUIフレームワークからの長期的なサポートを確保するという課題に直面している。

WhatsAppが読み込み画面でフリーズする

開発者であり、長年Windows Latestを愛読しているアレクサンダー・オフチンニコフ氏による最近の見解は、開発者の間で広く見られる感情を浮き彫りにしている。ユーザー数が少ないにもかかわらずネイティブアプリケーションが継続的に開発されているmacOSとは異なり、WindowsにおけるWebアプリに対する開発者の熱意は、プラットフォームに対する根深い不信感に起因している。

マイクロソフトがこれまで導入してきた様々な「将来型」フレームワークは一貫性を欠き、限られた使用期間の後、しばしば放棄されてきた。WPFやSilverlightからUWP、そして現在のWinUI 3に至るまで、このパターンは開発者たちに、それぞれの新しいフレームワークの寿命について疑問を抱かせる結果となった。Ovchinnikov氏が指摘するように、多くの開発者は、現在のフレームワークは投資に見合うだけの期間存続しない可能性があると認識している。

マイクロソフトは何十年にもわたり、一貫したGUI戦略を欠いてきた。利用可能なフレームワークが多岐にわたるため、Windows開発者は、アプリ開発にどのフレームワークを採用すべきか明確な指針がないまま、困難な状況に置かれている。

明快さから混乱へ:Windows開発の進化する状況

かつて、Windowsアプリ開発はシンプルなアプローチを採用していました。開発者は主にWin32に依存していたのです。この単一のAPIは強固な基盤を提供し、一貫性のある信頼性の高い開発環境を実現していました。

チャールズ・ペッツォルドの画期的な著作『プログラミング・ウィンドウズ』は、この点において極めて重要な役割を果たした。本書はWindowsアプリ開発の難解さを解消し、開発者がプラットフォームの安定性に疑いの余地がないことを確信して投資できるようにした。こうした環境が信頼を育み、ひいてはエコシステムの成長を促進したのである。

マイクロソフトはWin32を進化させるのではなく、常に新しい代替手段を投入してきた。MFCはC++ラッパーとして登場し、続いて. NET愛好家向けにWinFormsがリリースされた。WPFの登場はXAMLとハードウェアアクセラレーションをもたらし、Silverlightはクロスプラットフォームの可能性を目指した。長年にわたり、WinRTとUWPはWindows 8と10の時代に統合ソリューションとして売り込まれたが、いずれも業界全体での普及には至らなかった。そして今、WinUI 3は近代化を謳っているものの、開発者がかつて以前のフレームワークに抱いていた信頼感を醸成するには至っていない。

新しいフレームワークを導入し、開発者に時間と労力を投資するよう促しても、またすぐに焦点が移ってしまうというサイクルが、開発者のコ​​ミットメントを低下させている。今日の開発者は懐疑的な反応を示している。過去のフレームワークが長続きしなかったのに、なぜ現在のフレームワークが長続きするのだろうか?

今日の開発者は、混乱を招く状況に直面している。推奨事項は個人の好みによって大きく異なり、安定性を重視するならWin32やWPFを推奨する人もいれば、広く信頼されていないWinUI 3を好む人もいる。MAUIのようなマルチプラットフォームソリューションや、ElectronやPWAを用いたWebオプションの存在も、意思決定をさらに困難にしている。開発者は明確な方向性を見出すどころか、圧倒的な不確実性に直面しているのだ。

Windows開発におけるWebアプリの台頭

WhatsApp、Discord、Zoomなど、Windowsで広く使われている多くのアプリケーションは、厳密にはネイティブアプリではありません。代わりに、WebView2などのコンポーネントを活用したWebアプリとして動作し、Chromiumエンジンを統合することで、より一貫性のあるユーザーエクスペリエンスを実現しています。

マイクロソフト クリップチャンプ
マイクロソフト クリップチャンプ

ウェブアプリケーション開発の簡素化は、まさに画期的な変化です。このモデルにより、個別のコードベースを用意することなく、様々なオペレーティングシステムにアプリを展開することが可能になります。Electronやプログレッシブウェブアプリ(PWA)といったフレームワークは、メンテナンスコストを削減しながら、配信を迅速化します。企業はこうしたメリットにますます魅力を感じています。

しかし、この変化には欠点も伴います。Webアプリはリソースを大量に消費する傾向があり、一般的にネイティブアプリに比べてRAMの使用量が多く、応答性も劣ることが多いです。オペレーティングシステムとの統合性が低下するため、ユーザーエクスペリエンスが損なわれ、複数のElectronアプリがシステムリソースを圧迫する事態も発生します。

Windows版WhatsAppのRAM使用量
「WhatsApp」の最新バージョンと「WhatsApp Beta」の旧バージョンのUPW/WinUIバージョン

対照的に、macOSとiOSでは、開発者は依然としてネイティブアプリケーションの開発を優先している。AppleはCocoaやAppKitといったフレームワークの一貫性を維持しており、開発者に対して明確な指針と、ツールが今後も有効であり続けるという安心感を提供している。

残念ながら、Windowsにはこのような明確さが欠けている。この不確実性から、開発者はWebソリューションを選択し、変動するMicrosoftの戦略に伴うリスクを回避するために、本来的なパフォーマンス上の制約を受け入れることになる。

マイクロソフトによる開発者の信頼回復への試み

マイクロソフトが直面する課題を認識している兆候が見られる。最近の取り組みは、Webコンポーネントへの依存度を減らしつつパフォーマンスを向上させ、よりネイティブなWindowsエクスペリエンスを構築しようとする動きを示している。開発者のルディ・フイン氏が最近、Windows開発者に対しネイティブアプリ開発に取り組むよう呼びかけたことは、好意的に受け止められている。

しかし、アプリケーションの問題を解決することは、課題のほんの一部に過ぎません。マイクロソフトがネイティブ機能を強化したとしても、開発者の不安は解消されないでしょう。この警戒心は、現在のWinUI 3の機能そのものに起因するものではなく、過去の不安定な状況が開発者の関与を躊躇させているという背景にあるのです。

開発者の信頼を回復するためには、マイクロソフトは単一のフレームワークに注力し、開発者に対して明確な長期的な方向性を示す必要がある。一貫したサポートと成熟した開発プロセスは、開発者の信頼を取り戻す上で不可欠となるだろう。

一貫性:中核となる課題

マイクロソフトは卓越したエンジニアリング能力と、開発ツール開発における確固たる実績を有している。同社が導入してきたフレームワークは、技術的な優位性を示すことが多かったものの、開発者が安心して利用できるような、不可欠な一貫性を欠いていた。

マイクロソフトのFluent 2デザインリソース

レベッカ・サッターの分析で指摘されているように、社内での意思決定はしばしば戦略の急激な変化を招き、開発者にとって不確実性をもたらしている。根本的な問題は選択肢の不足ではなく、むしろ信頼できる前進の道筋がないことにある。開発者は、信頼できるサポートを提供するフレームワークを強く求めているのだ。

ウェブアプリ:開発者の意識を反映した一例

WebアプリケーションがWindowsエコシステムを席巻しているのは、その優れたパフォーマンスによるものではない。むしろ、優先順位が絶えず変化する状況において、信頼性を求める開発者にとっての代替手段として注目を集めているのだ。

開発者たちは、過去の経験とマイクロソフトの将来の決定の予測不可能性に基づいて、戦略的な選択を行っている。

Windows上でアプリの品質を向上させるには、MicrosoftのアプローチはWindows 11の不具合修正やネイティブアプリケーションの優先といったレベルにとどまらず、さらに踏み込んだものでなければなりません。開発者の信頼を再構築することが不可欠であり、将来を見据えた一貫性のある信頼性の高いフレームワークの維持への取り組みも欠かせません。

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です