[PR]今日のニュースは
「Infoseek モバイル」


ハローPython GUIワールド

 Visual BasicやDelphiなどのマウス操作である程度GUI(Graphical User Interface) のアプリケーションが書けてしまう統合開発環境が主流のMS-Windowsでは、 Tcl/Tkは大きなインパクトを与えるには至らず、 着実にコミュニティは拡大しているとはいえ市民権を得ているとは言いにくい状況です。 一方、UNIX上では Tcl/TkはGUIアプリケーション開発手法には過去多大な影響を与えてきました。その結果、 従来の低レベルで複雑なXLibやOSF/MotifのようなCライブラリに代わるツールとして急速に普及し、 「Motifキラー」と呼ぶ人も出る始末です。 そして1998年から突如始まった、PC-UNIX、特にLinuxの大ブームの到来に合わせて、 従来のTcl/TkやJava AWTに加え、 Gtk+Qt という新しい2つのGUIツールキットが出現しました。 これらの特徴は、「見た目のよい『クール』なGUI部品」と Javaにも通じる「オブジェクト指向のパラダイムによるGUI部品の階層構造」 に尽きるでしょう。 これはかつてユーザーはすべからく開発者でもあったUNIXのコミュニティに、 かっこいい画面構成や使いやすいデスクトップといったユーザーインターフェースにこだわるエンドユーザーの視点が急速に入ってきた結果だと思います。 実際、かつてのtwmの「じみー」な画面がどこか「とっつきにくさ」 を感じさせたのに対し、 Gtk+やQtが実現した美しく機能的な画面は多くのPCユーザーを魅了し、 PC-UNIXの世界へ引きこんだことでしょう。むろん、私もその一人であります。

 QtはC++、Gtk+はC言語用のGUIツールキット・ライブラリですが、 それぞれ幾つかのスクリプト言語からも使えるように、 スクリプト言語の拡張モジュール(バインディング)も配布されています。 現在、Gtk+とQt両方に対して、 それら本来の機能を概ね網羅し、記述方法に整合性がとれていて、 しかも新しいバージョンに積極的に対応しているバインディングが最も高い完成度で開発されているスクリプト言語はPythonです。 というより、Python**だけ**と言ったほうが適切かもしれません。 Gtk+のPythonバインディングPyGTKも、 QtのPythonバインディングPyQtも、実用に申し分ない完成度で、 Pythonのオブジェクト指向言語としての特性がGtk+やQtのクラス構造と高い親和性を持ちうること、 またホビーユースのハッカーにもプロフェッショナルな開発者にも支持されているという、 欧米でのユーザー層の厚さと質の高さに起因していると思われます。

 ことほどかように面白そうなものならつついてみたいのが人情、というわけで、 当サイトではTcl/Tk、Python/Tkinterとねじれの位置にある PyGTK、PyQtについてもちょっくらかじってみました。 情報源が少ないこと、C/C++での本来のGtk+やQtの知識も必要になること、 それに何よりこれらのツールキットのバージョンアップが恐ろしく速いことから、 すぐにこれらが前の2つを押しのけてスターダムに、 ということはないと思いますが、 こんなこともできるねん、というメモ書き感覚でご覧頂ければ幸いです。

セクションのサブメニューに戻る
(first uploaded 2000/03/09 last updated 2002/04/21)