Nautilusのデスクトップ機能の削除に関するアップストリームとUbuntuの見解
デスクトップにアイコンを配置する機能の削除に関するアップストリームとUbuntuの見解が紹介されています。結論から言えば、「Ubuntu 18.04」でも引き続きデスクトップにアイコンを配置できます。
なぜNautilusの開発者はデスクトップアイコンを削除するのか
2011年4月6日、「GNOME 2」のメジャーアップデートとなる「GNOME 3.0」がリリースされました。1.デスクトップにアイコンを配置しないデザイン
「GNOME」は「GNOME 3.0」のリリース当初から、デフォルトでデスクトップに何もアイコンを配置しないデザインを採用してきました。デスクトップにアイコンを配置する機能はオプションとなっており、その機能を利用したいユーザーは「Tweaks」で機能を有効にする必要がありました。
2.Ubuntu Desktopでは
一方その頃「Ubuntu Desktop」は、長らく採用してきた「GNOME 2」から「GNOME 3」へ移行せず、2011年4月にリリースされた「Ubuntu 11.04」で「Unity」へ移行しました。その後「Unity」は「Ubuntu 17.04」まで6年間、アップデートを繰り返しながら採用されてきました。
デスクトップ環境は「Unity」へと移行しましたが、「GNOME」のコアコンポーネントやコアアプリケーションは引き続き採用され、「Nautilus」もその1つでした。
そして「Ubuntu Desktop」では、デフォルトでデスクトップにアイコンを配置するデザインになっていました。
3.メンテナンスが行われていない
しかしデスクトップにアイコンを配置する機能は、十分にサポートされている機能とはいい難い機能でした。7年間この機能は十分なメンテナンスが行われておらず、「Nautilus」が移行した新しいビューシステムへの移行が行われませんでした。
「Unity」のために長年維持されてきたパッチがありました。
「Unity」ランチャーが自動的に非表示になる機能(IntelliHideモード)を有効にした時、アイコンサイズに応じてデスクトップの右側にアイコンを移動するパッチが適用されていました。
「Unity」のために継続的に行われてきた作業の中で、メンテナーから見てそれらのコードは古くなったコードであると断言できるコードになっていました。
アップストリームの「GNOME」でデフォルトで使用されなくなったこの機能は、古く取り残された機能になりました。
4.オプションとして残しておく方法
「Ubuntu」の開発者は、「デスクトップにアイコンを配置する機能をオプションとして残しておけば良い」というコメントを多く目にしました。しかし「Ubuntu」の開発者は、この手法に反対しています。
その理由は、「Ubuntu Dock」が「Dash to Dock」と比較して非常に少ないオプションのみサポートしているのと同じ理由です。
つまりオプションを追加するということは、以下のようなコストや懸念が発生します。
テスト項目の増加及び品質確保の難しさ
多くの時間を手作業で行う必要があるテスト項目が増えます。またオプション間の相互関係(あるオプションが他のオプションに副作用を及ぼす関係)の爆発的な増加は、未完成なプロジェクトを生み出すことにつながります。
例えばお互い相容れないオプションでは、他方のオプションと組み合わせて利用できないように注意を払わなければなりません。
さもないとクラッシュや副作用の原因となります。
「Compiz Config Settings Manager」で起きていたことが、まさしくこれに該当します。
メンテナンスコスト
新しいコードが増えるということは、新たなバグを抱えることにつながります。また「Nautilus」のように新たな仕組みへ移行する必要が出た時に、それらのコードも一緒に修正しなければなりません。
それに時間を費やすということは、不具合の修正や新機能の実装、テスト、ドキュメントの作成などプロジェクトにとって価値のある作業に投資する時間が奪われ、プロジェクト全体に非常に宜しくない影響を与えることになります。
加えてメンテナーの時間の制約により、プロジェクトの他の部分で行われた改良が新しいコードまで反映されず、デフォルトでその機能を利用しているユーザーにも間接的に影響を与える可能性もあります。
5.アップストリームの説明
去年の12月の終わりにアップストリームの開発者は、「Nautilus」からデスクトップにアイコンを配置する機能の削除に関し、説明を行いました。上記の内容は、以下で紹介しています。
技術面に関する説明は、以下で参照できます。
長期的な解決策としてデスクトップにアイコンを配置したいユーザー向けにGNOME Shell拡張のプロトタイプが作成されました。
元々このプロトタイプは概念実証(実現性の検証)のために作られたものですが、実際にGNOME Shell拡張として提供するのに必要な目標が設定され、決して一時的なプロトタイプではありません。
そして「Nautilus」からデスクトップにアイコンを配置する機能を削除した開発者達による開発であり、機能面や実装面で理解している人達が実装しています。
Nautilusのメンテナーから
「Nautilus」のメンテナーは、「Ubuntu」と「Canonical」の開発者達との意思疎通に関し外から見た誤解がいくつかあり、誤解の内容とその解消を紹介しています。1.Nautilus 3.26の採用
1つの誤解は、「Ubuntu 18.04」で以前のように再び古いバージョンのソフトウェアをなんとなく採用した、ということです。驚くかも知れませんが、これは「Nautilus」のメンテナーが「Nautilus 3.26」に留まることを「Ubuntu」に対し推奨しています。
サポート期間が長いLTS版にとってこれは非常に合理的な選択肢です。
一方で一般的なユーザーに対しては、「nemo-desktop」の試用を推奨しています。
「nemo-desktop」は「Nautilus」のデスクトップ機能を提供するソフトウェアであり、ファイルマネージャーとしての「Nemo」のことではありません。
様々な要求や数年間安定性を提供する必要があるディストリビューションにとって、すでに動作実績のある実装に留まることが最善の選択肢です。
2.急な意思決定
デスクトップにアイコンを配置する機能を削除するという決定が、急に下されたという誤解です。「Nautilus」のメンテナーは、3年以上前にこの機能の削除の必要性を認識していました。
しかしこの機能を維持し続けた(削除しなかった)大きな理由は、「Ubuntu」のようなダウンストリームの存在でした。
「Nautilus」の他の開発者達と共に今まで削除に関する議論が行われていました。
つまり急な決定ではないということです。
3.GNOMEとUbuntuの開発者はお互いにコミュニケーションがない
最後の誤解は、「GNOME」と「Ubuntu」の開発者はお互いにコミュニケーションがない、という誤解です。何かしら変化が起きる時はコミュニケーションを取っています。
今回の事例では、最終的な決定を行う前に「Canonical」のデスクトップチームに連絡を取っています。
その連絡では、今回の変更内容及びLTSリリースと通常リリースの「Ubuntu」に対する選択肢を提案しています。
そしてUbuntuでは
「Ubuntu 18.04」はLTSリリースであり、5年間のサポートが提供されます。「Ubuntu 16.04」を利用している多くのユーザーは、「Ubuntu 18.04」へアップグレードするでしょう。
1.安心と親しみやすさの提供
「Ubuntu 16.04」と「Ubuntu 18.04」は2年間の開きがあり、2年分の様々な変化がユーザーにもたらされます。特に「Unity」から「GNOME Shell」への移行は、大きな変化の一つです。
「Ubuntu Desktop」チームは、大きな変化があってもデフォルトのUXにおいて安心して親しみやすいUXを提供したいと考えています。
つまり「Unity」ユーザーが「GNOME Shell」環境に移っても大きな混乱をしなくて済むデザインを考えており、「Ubuntu Dock」の採用はその一例です。
そしてデスクトップにアイコンを配置する機能も必要な機能であると考えています。
2.3つの選択肢
「Ubuntu」でこの問題を検討した結果、アップストリームの提案と同じ3つの選択肢に行き着きました。1.Nautilus 3.26に留まる
「Nautilus 3.26」に留まる方法です。「Nautilus 3.26」は「Ubuntu 17.10」で採用されており、十分なテストが行われています。
そのためサポート面の心配がなく、長期サポートを提供するLTSの方針に合致します。
一方で他のコアコンポーネントは「GNOME 3.28」由来のコンポーネントになり、統合された動作を提供するために何かしら追加作業が必要になる可能性があります。
加えて「Nautilus 3.28」で導入された新機能や改善は利用できません。
2.デスクトップ機能を持つ他のソフトウェアを採用する
ファイルマネージャーに「Nautilus」を使用し、デスクトップ機能に「Nemo」のような他のソフトウェアを採用する方法です。「Ubuntu 18.04」にとってそれは十分なテストが行われていないコードであり、2種類のソフトウェアをサポートする必要があります。
また「Nautilus」や他のアプリケーションと親和性のある動作を確実に提供しなければならず、この方法はすぐに除外されました。
3.Nautilus 3.28とGNOME Shell拡張の採用
「Nautilus 3.28」とデスクトップ機能を提供するGNOME Shell拡張を採用する方法です。GNOME Shell拡張は完成していないため、「Ubuntu 18.04」のリリースまでにできる限り完成に向けた作業を行います。
うまく行くのであれば、理想的な方法です。
しかし「Ubuntu 18.04」にとってそのGNOME Shell拡張は新しい実装であり、GNOME Shell拡張を開発するには「Nautilus」が提供する新しいAPIを使用する必要があります。
そのAPIはまだ十分に揉まれておらず、安定したAPIの提供は「GNOME 3.28」のリリースに間に合わない可能性もあります。
そのため品質の確保含め「Ubuntu 18.04」のリリースに間に合わないリスクがあります。
3.Nautilus 3.26に留まる
「Ubuntu 18.04」では「Nautilus 3.26」に留まる方法が採用されました。ただし他の「GNOME」コンポーネントの多くは「GNOME 3.28」にアップグレードされる予定です。
またこの方針により、「Ubuntu Budgie」のような「GNOME Shell」を採用しておらずGNOME Shell拡張を利用できないが「Nautilus」を採用しているフレーバーでも引き続き「Nautilus」を採用し、「Nautilus」のデスクトップ機能を利用することができます。