Windows アプリケーションの開発に関する Microsoft のロードマップは、Windows 専用ではなくクロスプラットフォーム ソリューションを求める一部のプログラマーから反対されています。
スペインの開発者ホセ・ニエト氏は今週、GitHubで問題を提起し、Microsoftが「Windows 10のネイティブUIプラットフォーム」と位置付けているWinUIは、Windowsだけでなく、Linux、Mac、iOS、Android、そしてWebAssemblyもターゲットにすべきだと主張した。WebAssemblyはWebブラウザーでも実行できるようにするためだ。
これは、ネイティブUIプラットフォームがOSのあらゆる機能を活用し、そのルック&フィールにシームレスに溶け込み、パフォーマンスが最適化されているという通常のパターンに反するものです。クロスプラットフォームのサポートは、妥協を必要とする負担となります。
マイクロソフトによるとWindows 10のネイティブUIフレームワークであるWinUIの「概念概要」。クリックして拡大
しかし、Windowsの状況は異例です。多くのレガシーシステムに加え、Windows 8で意図的に導入された二重の個性によって、オペレーティングシステムのルック&フィールは本来あるべきほど一貫性を失っています。
Windows 8で導入されたモダンアプリプラットフォームは、ユニバーサルWindowsプラットフォーム(UWP)へと進化しました。Windows 7の時代でさえ、UIは乱雑でした。Windows Presentation Foundation(WPF)は新しく、DirectXグラフィックを使用してレンダリングしますが、従来のWin32 APIはそうではありません。
Microsoft はある文書では WinUI をネイティブ UI と呼んでいますが、別の文書では Win32 API は「Windows とハードウェアへの直接アクセスを必要とするネイティブ C/C++ Windows アプリケーションのオリジナル プラットフォーム」であり、「最高レベルのパフォーマンスとシステム ハードウェアへの直接アクセスを必要とするアプリケーションに最適なプラットフォーム」であると述べています。
Microsoft が WinUI 開発者に推進している Fluent Design System 自体はクロスプラットフォームであり、「あらゆるデバイスで自然」と表現され、Web、Windows、iOS、Android の例があります。
これらすべての要素を考慮すると、クロスプラットフォーム WinUI のアイデアはそれほど不合理ではないかもしれません。
Nieto氏は、様々なMicrosoftフレームワークで様々な形で使用されているXMLベースのプレゼンテーション言語であるXAMLの熱心な支持者です。AvaloniaがクロスプラットフォームGUIアプリケーションにXAMLを使用できるのであれば、Microsoftが使用できない理由はありません。
続く議論は、Microsoftがなぜ一部の開発者の忠誠心を失ったのかという点において、非常に示唆に富んでいます。WPFはそのパワーと柔軟性で高く評価されていましたが、UWPは満足のいく代替手段とはなっていません。
「Windows Mobileの廃止によって『One Windows』のビジョンが断たれたため、これは普遍的なものではない」とニエト氏は語る。サンドボックスの制限により高度なアプリケーションには不向きであり、Microsoft Storeの役割は複雑で、サードパーティ製のコントロールも不足している、とニエト氏は指摘する。
WSUS Insiderの皆さん、Windows 10 2004が近づいています
続きを読む
実際、MicrosoftはWinUIでこれらの問題の多くに対処しています。WinUIはUWPだけでなくWin32アプリモデルも使用できます。また、C#やVisual Basic以外の言語も容易にサポートできるという点で、WPFよりも優れています。WinUI自体はC++で記述されています。Microsoftによると、WinUIはReact Nativeなどの「WebおよびクロスプラットフォームフレームワークのネイティブWindowsターゲット」としても理想的です。
カナダ人開発者のマリオ・ピンタリック氏は、UWPは「カーネルレベルのツール」を除けばあらゆる点で優れていると述べ、「セキュリティ、導入の容易さ、インストール/アンインストールのエクスペリエンスなど、様々な観点からユーザーエクスペリエンスがはるかに優れています。UWPのセキュリティサンドボックスは重要な(必須の)機能です。多くの点で、UWPはWPFをはるかに上回っています」と主張しています。
しかし Pintaric 氏は、Microsoft が UWP で、品質面でも、またデータ グリッドやフォーム アプリケーションの検証状態などの領域における基幹業務 (LOB) アプリケーションの要件を満たせなかった点でも誤りを犯したことを認めています。
「これらの問題のほとんどは解決されているが、時間がかかりすぎた」と同氏は述べ、「マイクロソフトが正しい対応をしてくれるという希望を開発者たちが失ってしまったことに完全に同意する」と結論付けた。
おそらく最も説得力のある批判は、UWPは実際にはモバイルとタッチ操作向けに設計されていると指摘する別の開発者からのものだ。「ほとんどの開発者はUWPを使ってデスクトップアプリを開発していますが、UIはそれに合致していません」と彼は述べ、スクロールバーやラジオボタンといった様々なコントロールの例を挙げた。「最大の問題は、本来10分で済むはずの作業が、通常2時間以上かかることです」と彼は付け加えた。
マイクロソフトはどうすれば開発者の忠誠心を取り戻せるだろうか?同社にはVisual StudioとVisual Studio Codeという優れた開発ツールがあるが、Windows用のGUIアプリケーションをコーディングしようとすると、選択肢の多さに戸惑うばかりだ。
WinUIが真の未来であると開発者を納得させるには、多くの発言が必要になるだろう。MicrosoftがWindowsの近代化に向けた最新の取り組みであるWindows 10Xの力強いリリースは、その一助となるだろう。その間、開発者はWindowsのもう一つの、そしてより歓迎すべき特徴に頼ることになる。それは、Win32やWPFといった古くからある技術で構築されたアプリケーションが、今でも問題なく動作するという点だ。®