Motifの世界観です。GNOMEやLinux(X11周辺)も参照のこと。
X11を開発したMITアテナプロジェクトでも、UNIXのGUIは成功していなかった。この状況を変えたのが、OSFとMotifツールキット。
MotifはX11の上部レイヤーで実現されるツールキットで、「ウィジェット」「ウィンドウマネージャ」「ユーザーインターフェース言語(UIL)」「スタイルガイド」から構成されている。このうち、ウィジェットはボタンやメニューなどのGUI部品であり、UILはウィジェットをレイアウトするための言語である。
X11が開発されたこともあって、MITアテナプロジェクトはXのツールキットの技術やノウハウが豊富にあり、OSFが設立されると、OSFとMITは密接に協力し、Moitfは進歩していった。
(MITアテナプロジェクトのすべて―大規模分散システムに挑んだ先駆者たちの記録を参考に執筆しました。)
2023.05.06
旧来のUNIXでは、GUIツールキットを標準化するために、Motifというツールキットが作り出された。
これは、UNIXベンダー各社の間で共通のルック・フィールを持たせようとするものであって、Motifを拡張してHPのHP-VUEが生まれ、それを複数のベンダーが共通化してCDEが生まれた。
昔のUNIXワークステーションのGUIを見ると、この伝統的で古臭いけれど味のあるCDEの画面が表示されることが多い。
MotifはOpen Motifとしてオープン化されたが、完全なフリーソフトウェアではなかった。このため、LessTifという互換フリーソフトウェアが開発された。
そして、話はLinuxになる。LinuxでもCDEのような完成されたデスクトップ環境を、特にMicrosoft Windowsに対抗して作り出そう、という動きが、KDEプロジェクトを作った。
だが、KDEはQtと呼ばれるツールキットを使っていた。優れたツールキットだったが、これはオープンソースではなかった。
フリーソフトウェアのGUI環境を開発するために、GNUプロジェクトは二つの方法を同時に試した。一つは、Qtをフリーソフトウェアとして実装するHarmonyプロジェクトで、もう一つはGIMP Toolkit(GTK+)というフリーソフトウェアのツールキットを使ったデスクトップ環境を開発するGNOMEプロジェクトだ。
GNOMEは、フリーソフトウェア開発者のミゲル・デ・イカザ氏たちによって、新しい「言語非依存でWindowsのような他のOSのプログラムとも話が出来る」ものとして、CORBAと呼ばれるコンポーネント技術を採用して開発が始められた。これはWindowsのCOMと近い技術で、「UNIXをもっとマシなものにする」というミゲルの話からも分かるように、Windowsを意識したものだった。
結果的に、HarmonyではなくGNOMEが成功した。GNOMEはCで記述され、WindowsとのCORBAコンポーネントと話が出来るようなものになった。そして、GTK+はPerlやPythonのような他の言語からも使いやすいものになった。
現在では、Qt、Motif、CDE、どのコンポーネントもオープンソースのライセンスを採用している。
UNIXでは、長らくMotifというGUIツールキットが標準的で、商用のUNIXワークステーションには、プロプライエタリのXとGUIツールキットのMotif、そしてCDEなどのMotifで書かれた統合デスクトップ環境を乗せるのが一般的だった。初期のGIMPもMotifで書かれていた。
だが、最初期のLinuxから見ると、Motifには問題があった。Motifはオープンソースでなく、有償で提供されていたため、Motifで作られたXアプリケーションは、それ自体がフリーでもMotifに依存し、そのため「Motifを購入しなければ使えない」という酷いものだった。
最初期のLinuxのX11には標準的なツールキットが無く、Motifに代わるツールキットが必要だった。
標準的なツールキットのないX11に、Trolltechという会社がQtと呼ばれる優れたツールキットを提供した。QtはKDEという「CDEのCをKに変えたデスクトップ」で採用されたが、ここでも問題が起きた。Qtも(当時は)フリーソフトウェアではなかったのである。
これに問題を感じたGNUでは、GNUの協力者でプログラマであるミゲル・デ・イカザにより、QtではなくGIMPのGTK+を採用した独自の統合デスクトップが開発された。これがGNOMEである。
Harmonyという「Qtのオープンソース代替」も作っていたGNUだが、GNOMEの方が成功した。GNOMEでは、CORBAを使うことで、WindowsのCOMのようなコンポーネント分散通信システムを作った。これが、商用Linuxディストリビュータなどに「GNOMEを採用させるきっかけ」を与えた。ミゲルは「UNIXをもっとマシなものにしよう」と提唱した。
GTK+はシンプルなC言語のツールキットで、QtがC++を採用しているのとは対照的に、単純なC言語によるツールキットを提供し、C言語でオブジェクト指向を行えるGLib・Gobjectという仕組みを採用している。その上で言語バインディングを提供することにより、さまざまな言語で開発が行える。Windowsでも.NETでC#/VBで開発ができるように、GTK+ではC/C++/Python/Ruby/JavaScriptなど、「多くの言語でGUIプログラミングができる」というところが売りである。そのため、RubyistなどにはGNOMEはとても良い環境である。
以下のページが参考になります。