GNOME の優位性

著者: Monty Manley

日本語訳: yomoyomo


以下の文章は、Monty Manley による The GNOME Ascendant の日本語訳である。

Gnome Foundation 設立を受けて書かれた文章で、一面的な印象はどうしても否めないが、初心者向けに訳してみた。

本翻訳文書については、以下の方々にご教示を頂きました。ありがとうございました。


「崇高さと愚かさはしばしばとても近しいものなので、別々に分けるのは難しい」
-- Tom Paine[訳注1]

GNOME の優位性

どうして IBM や HP や SUN が、GNOME を「一押し」GUI/ツールキット技術に決めたのだろう? 多くの KDE 開発者はその決定に対して屈辱と怒りを味わっていて、激しい論戦が続くのは間違いないだろう。しかし、OSS[訳注2]コミュニティに属する皆が、(必ず上の引用文を心に留めておいて)この決定がなされた根拠を理解することは重要だ。

所有者

KDE は、QT ツールキットに依存していて、QT はノルウェーの Troll Tech 社が所有している。Troll Tech 社は、コミュニティにおける公平で立派なメンバーであることを示してきた一方で、QT が Troll の独占物であるという現実は変わっていない。Troll は、QT にどんな機能をいつ実装するかについての決定権を握っている。更には、QT のライセンスは今なお多くの人達にとって悩みの種である。というのも、「フリー」ソフトウェアを書くのに使う場合においてのみ「フリー」で、そうでなければライセンス料の支払いが必要となる。GNOME プロジェクトは、QT のクローズドなライセンスを明確に解決するために設立された。

こうした理由から、IBM や HP や SUN といった商用ベンダがその技術を採用するのを躊躇する理由がよく分かる。GTK/GNOME にはライセンス料なんて全く発生しないというのに、どうして Troll にライセンス料を支払うんだい? つまり GTK/GNOME は GPL なので、コミュニティによる開発がオープンにできて、全ての企業にとって活躍の場は公平に与えられている。例えば、IBM が SUN よりよいスタートを切ろうと GNOME に独占コードを追加したりはできないわけだ。

KDE 推進者は、QT に関する Troll のライセンスがオープンソースソフトウェアの信条と矛盾することを熱心に否定するが、僕はその論法はかなり怪しいものだと思う。現実には、QT が Troll の主な(というか、唯一の)収入源であるし、それは彼らがソースコードを管理し続ける既得権を持つということである。他方 GTK/GNOME は、誰の所有物でもないので(みんなの所有物ともいえる)、その結果として誰の邪魔もしない。[訳注3]

プログラミング言語

QT は C++ で書かれていて、KDE も同様である。これには功罪がつきまとう -- QT はエレガントなオブジェクト・モデルを持っていて、プログラマーにとっては生産性が高くなるが、同時に Perl や Python などの他のプログラミング言語と組み合わせて書くのが極端に難しくもなる(QT にはそのためのバインディングが存在するにも関わらず)。これは、C++ における、多重継承やコピーコンストラクターなどのいくつかの特徴のせいで、他のプログラミング言語には移植できないのだ。しかも C++ ライブラリは、C++ でないクライアントだと相互接続がうまくいかないことが多い -- 突き詰めると、QT/KDE はほとんど C++ 派ということなんだ。

GTK/GNOME は普通の C 言語で書かれている。API に関して、擬似オブジェクト指向(pseudo-object-orientation)(僕はこれを POO と呼んでいる)手法が必要とはなるが、他の言語(C++、Perl、Python、Dylan などなんでも)をシミュレートできてしまうという劇的な利点がある。つまり C は「最小公分母(lowest-common-denominator)」言語なので、C で書かれたライブラリは、C++ ベースのライブラリよりも、リンクに関する問題が少ない傾向にある。

最後になるが、(これは今では些細なことであるが)C は C++ よりもバイナリが小さく、高速になりやすい。

コンポーネント技術

コンポーネント・ベースのプログラミングは、バイナリレベルでの再利用、完全な言語非依存、プラットフォーム非依存を実現するという考えに基づいている。Windows 界では COM がその代表で、Unix 界では CORBA がその代表である。コンポーネント・ベースのプログラミングの利点はたくさんあるが、それを列挙するのは、このエッセイの範囲外である。だが、アプリケーションを書くツールキットを決めるのは重要な要素である。

KDE 開発者は、プロジェクトの初期には CORBA(KOM)を試していたが、結局は速度の問題やコードの複雑さがあって、それを止めてしまった。かわりに彼らは、KParts という名の「自作物」で解決することにした。概念的には、KParts はマイクロソフトの COM に似ているが、以下に挙げる幾つかの重大な制限事項がある:

  1. KParts は C++ オンリーである。これはコンポーネント・プログラミングの「言語非依存」に背いている。
  2. KParts は「ネットワークを介した」通信ができない(例えば、RPC[訳注4] のメカニズムを持たない)。これはコンポーネント・プログラミングのマシンに対する中立(machine-neutral)の見地に背いている。
  3. KParts は KDE に特化している(つまり、GNOME コンポーネントを書くのに KParts は使えない)。
  4. KParts コンポーネントは、(そのままでは)COM/CORBA コンポーネントと通信できない。逆の場合も同様である。KParts は従って、完全に自己完結しているのだ。

さて、以上のいずれをもってしても、KParts が駄目な技術ということにはならない。それは KDE 用の軽量コンポーネント・モデルとしてデザインされたものであり、その役割を立派に果たしている。また、KDE 開発者が(Mico や ORBit などの)CORBA ORB を使うのを妨げるものは何もない。だが、幾つか問題がある。例えば、KMail から文章を単純にドラッグして GNOME ワープロにドロップしても、期待通りにいかない。異なるコンポーネント技術が存在するということは、KDE アプリと GNOME アプリがお互いに対して「協調不可」であることになる。

現代的なコンピュータ環境は、ますます多層的、かつ分散的になりつつある。PDA、携帯電話、ポケベル、そしてラップトップ型コンピュータがネットワークにいつも「入ったり」「出たり」している。分散コンポーネント・アーキテクチャは、そうしたネットワークに必須なアプリケーションを書くのをずっと簡単なものにしてくれる。GNOME のコンポーネント・フレームワーク(Bonobo)は、コンポーネントを書くのを簡略化、規格化するし、これらのオブジェクトが CORBA を話すので、Bonobo コンポーネントは、ネットワーク上の他のとこにある Windows マシン上で動いている別の CORBA コンポーネントと「お話」ができるということになる。

KDE のグループを CORBA コンポーネントに取り組ませる価値はない。GNOME でも KDE でも動くコンポーネントを書くことができればよかったのだけど。そうすれば、開発者に両方の環境で共通なコードを書く、とても有力な手段が与えられただろうに。KDE 開発者は、自分たちは「CORBA を捨ててない」と主張するが、これは主に意味論の問題だ。つまり、もし開発者が取り組みたいのなら、CORBA はそこにある。が、KParts 自身はそのままでは CORBA をサポートしていない。よって僕は、実際には KParts こそが、KDE が CORBA を捨ててしまったことを象徴していると主張したい。

僕が考えでは、この点がおそらく KDE でなく GNOME を選択する決定的な要因となるだろう。GNOME は単に、より柔軟性と拡張性のあるオブジェクト・モデルを持っているだけなのだ。

「流行」

最終的に GTK/GNOME は、多くの大企業のレーダー画面に引っかかり、実際に KDE よりも高い地位を得ている。Eazel 社が Nautilus というとても面白いブラウザ/ファイルマネージャを見せながら、Helix Code 社[訳注5]が、GNOME のとても巧みで安定性の高いディストリビューションをパッケージ化した。対照的に、KDE の人達は堅実に作業をしてきたけれども、KDE 2.0 を発表する前の数ヶ月も比較的おとなしかった。

多くの KDE 開発者は、GNOME Foundation の設立を「裏切り」ととらえてきたが、僕は今回のケースがそうだとは思わない。第一に、財団が設立しても、ソースコードそのものは何も変わらないのだ。同じ開発者がこれまで通り同じ作業を行いつづけるし。実際のところ、今回の尽力により、沢山のよりスキルのある開発者が仲間になってくれるに違いない。しかし、GTK/GNOME は現在も、そしてこれからも GPL のままである -- これはいかなる特定の団体からの「ハイジャック」も防いでいる。

Borland が Kylix 製品(Linux 用の、Pascal ベースの Delphi クローン)を出荷した暁には、「流行」は KDE に転じるかもしれない。Kylix は QT ライブラリ上で作られるので、KDE にそのまま統合されるだろう。

現在は発明されてない

僕は、GTK/GNOME が主にアメリカ人により開発されているのに対し、KDE が主にヨーロッパ人により開発されているものだから、KDE は退けられつつあるのだ、という何人かの KDE 開発者の考えを聞いたことがある。この不穏な主張には、ある種の外国人恐怖症が見られる。僕のような GNOME 関係の人間は、単に技術的な(つまり弁護可能な)理由で技術的な決定がなされたととらえているのに対し、多くの KDE 支持者は、これを更なるもう一つのインターネットの「アメリカ化」の例としてとらえている。

この種の中傷を投げつけるのは避けるべきである。それに外国人恐怖症のきらいがあるだけでなく、愛国の誇りやら国家との自己同一ばかりでは、技術的な決定を曇らせてもしまう。

結論

僕が GNOME ファンであるのは明らかだけど、この手の議論であまりにも頻繁に出てくる、けたたましい「GNOME の勝ち、KDE なんてステステ(GNOME rulez, KDE suX0rz)」式戯言だけは避けてきたつもりである。GNOME は「標準」によりふさわしい、KDE を上回る真の技術的優位性があると僕は思うが、KDE ユーザはおそらく(激しく)否定するだろう。ここでの唯一の答えは、いつもと同じ次の教訓ということになる。そう、使えると思う方を使えばいいのさ。

参考:

http://slashdot.org/features/00/08/18/133219.shtml
http://www.computerworld.com/cwi/story/0,1199,NAV47_STO48629,00.html
http://www.gnome.org/pr-foundation.html

http://lwn.net/2000/features/LinuxWorld/KDE.php3
http://www.theregister.co.uk/content/1/12586.html
KParts の概要については:http://www.kde.org/technology.html
Bonobo の概要については:http://www.ximian.com/tech/bonobo.php3


[訳注1] 奴隷制度の廃止や教育の必要性を説いたことで知られる18世紀の思想家トマス・ペイン(1737-1809)。代表作は『コモン・センス』。ここで引用される文章は "Age of Reason (pt II)" からのもので、邦訳も『理性の時代』として泰流社から出ていたが、泰流社自体一年ほど前に倒産したとのことである。

[訳注2] Open Source Software の略。

[訳注3] この文章の公開後、Qt のライセンスが変更され、QPL と GPL のデュアルライセンスとなった。このため、現状両者のライセンスに優劣はないといえる。

[訳注4] Remote Procedure Call の略。分散コンピューティング環境の基盤となる技術。

[訳注5] 現在は社名を Ximian に変更している。上の参考 URL も、それに合わせて変更した。


[翻訳文書 Index] [TOPページ]


初出公開: 2000年08月24日、 最終更新日: 2004年04月29日
著者: Monty Manley
日本語訳: yomoyomo (E-mail: ymgrtq at yamdas dot org)