Tcl/Tk について


歴 史

Tcl/Tk は、1988 年当時カリフォルニア州立大学のバークレー校の教授であった John K. Ousterhout 博士によって開発されました。Tcl (Tool Command Language) とは、集積回路の設計に使われるスクリプトを、C言語のライブラリ・パッケージとして組み込んで、汎用な目的に使えるようにと開発されたスクリプト言語です。一方 Tk (Tool Kit) は、1987 年秋に Apple 社から発表された HyperCard に刺激された博士が、UNIX の X の環境で GUI (Graphical User Interface) に必要な部品を、Tcl で簡単に扱えるようにする目的で作られました。

このように Tcl と Tk は始めから一緒に生み出されたというわけではなく、当初はバージョン番号も別々に付けられていました。そのため「Tcl and Tk」と書くか、スラッシュで区切って「Tcl/Tk」と書き「ティクルティーケー」と呼ばれています。実際には、単に Tcl と言えば、Tk も含まれていることを暗黙に指している場合もあるぐらい双方の関係は密接です。

Ousterhout, John K.
Tcl and the Tk toolkit (1994)
Addison-Wesley
ISBN0-201-63337-X

Tcl/Tk は平易なコマンド群で GUI アプリケーションを実現でき、しかも言語の拡張性に優れている為、多くの UNIX ユーザに支持されるようになりました。ニュースグループ comp.lang.tcl では Tcl/Tk の機能について盛んに論じられ、その論議を反映するために改良が続けられて現在に至っています。そういう意味で、Tcl/Tk はニュースグループというコミュニティの中で育まれてきた、プログラミング言語/環境であると言えます。

Ousterhout 氏が執筆した Tcl/Tk の本が世に出たのは 1994 年のことです(右図参照)。余談になりますが、ちょうどこの 1994 年から 3 年間、私は US のシリコンバレー (San Jose) に住んでいました。Computer Literacy という書店に、この本がたくさん平積みになっていたのをよく憶えています。ただ、この本を自分が購入したのはずっと後のことです。現在の Tcl/Tk は内部構造がかなり変わってしまいましたが、それでも今なおこの本に書かれているコンセプトは通用します。ちなみに、2009 年になって、第二版が出版されています。

Ousterhout 氏はその後大学を去り、Sun Microsystems Labs. (SML)に籍を移しました。SML では Tcl/Tk の開発を、専属の開発スタッフで構成されたチームで進めるようになります。そこで、次のような成果が得られました。

  • バージョン Tcl 7.5/Tk 4.1 から、Microsoft Windows や Apple MacOS に対しても対応。
  • バージョン Tcl/Tk 8.0 でバイトコード・コンパイラを導入。実行速度が飛躍的に向上。
  • インターネットブラウザ上でプラグインとして動作する Tcl Plugin がリリース。

Sun Microsystems(2010 年 1 月 27 日、Oracle による買収が完了)と言えば、周知の通り、Java の開発・普及に大変力をいれている会社です。そのせいでしょうか、John K. Ousterhout 博士は SML を辞め、1998 年 1 月に Scriptics Corporation を設立しました。こうして、Tcl/Tk のサポートは Tcl/Tk を生み出した彼自身の会社に移ったのです。しかし(私自身、身をもって感じることですが)会社の経営は難しいものです。Scriptics Corp. は 2000 年 5 月 22 日に経営者が変わり、社名も Ajuba Solutions, Inc. に変更され XML のアプリケーション開発が中心の会社になりました。そして Tcl/Tk の開発チームは、Ajuba Solutions から次第に離れていきます。

2000 年 8 月 18 日に、コミュニティの投票の集計結果から、Tcl コアチームが結成され、開発チームが組織され直されました。Ajuba Solutions はその後、Interwoven, Inc に買収(2000 年 10 月 20 日)されたため、Tcl/Tk の開発サイトは完全に Ajuba Splutions を離れ、Tcl SourceForge Project へ移りました。

その後、Tcl Ambassador(Tcl 大使? Tcl 開発/コミュニティの中心人物)である Jeffry Hobbs 氏が、2001 年 2 月に ActiveState 社へ移籍したことによって、Tcl/Tk のサポートが ActiveState 社へ移りました(2001 年 2 月 26 日にアナウンス)。開発の中心はあくまで Tcl コアチームあるいは Tcl コミュニティにあり、従来のバックアップ企業のように充実した専属的開発チームを組織するほどには ActiveState 社は財政的なサポートをしていません(Tcl Developer Site は ActiveState 社のサーバで運営されています)。ただし ActiveState 社からは、ActiveTcl として、いくつかのプラットフォームに対してバイナリが公開されています。Windows 用のバイナリとしては、実質的な業界標準パッケージになっています。

ページ先頭に戻る

Tcl コアチーム (TCT)

Tcl コアチームのメンバーは、Tcl コミュニティから投票で選ばれました。2000 年 8 月 18 日に組織された時点でのメンバーは次の通りです(順不同、敬称略)。

Tcl のコミュニティや TCT からあがった Tcl に関わる要望は、TIP (Tcl Improvement Proposal) という文書にまとめられ、所定の論議と手続きを経て、TIP のメンバーの投票によって採否が諮られます。TIP のドキュメントは以下のサイトで管理されています。

ページ先頭に戻る

特 徴

Tcl はスクリプト言語かつ高級言語であるため、Compile/Link の手間が省けて即実行でき、プログラムの開発期間を大幅に短縮することができます。また Tk によって簡単に GUI を実現できるのが最大の特徴であると言えます。その他の特徴として次のような点が挙げられます。

  • Tcl のコマンドは簡単でおぼえ易い。
  • バイトコードにコンパイルして実行するためスクリプト言語にしては高速(Tcl/Tk8.0 から)。
  • 強力なPOSIX準拠の正規表現を使うことができる(Tcl/Tk8.1 から)。
  • UNICODE 採用で国際化対応(Tcl/Tk8.1 から)。
  • 主要な OS上で動作する。
  • 他のアプリケーション(特に C 言語のもの)に組み込み易い。
  • 言語の拡張が容易。Tk の拡張をはじめとして、さまざまな拡張パッケージが入手可能。
  • (ソースが)フリーで配布されている(BSD タイプのライセンス)。
ページ先頭に戻る

(C) 2009 - 2017 Fuhito Suguri
クリエイティブ・コモンズ・ライセンス
This site by Fuhito Suguri is licensed under a Creative Commons 表示 - 継承 3.0 Unported License.
Ads by Sitemix