Tcl/Tk
組み込みやすいスクリプト言語Tclと、GUI部品ツールキットTk。手軽にGUIアプリを作れる組み合わせとして長く使われた。
時代背景
John Ousterhout本人が公式サイトに書いた回顧録「History of Tcl」によれば、Tclは1980年代前半、カリフォルニア大学バークレー校でOusterhoutが手掛けていた集積回路(IC)設計ツールの研究から生まれた。彼と学生たちはMagicやCrystalといった対話的な設計ツールを開発していたが、各ツールにはそれぞれ独自のコマンド言語が必要で、本来の関心はツールそのものにあったためコマンド言語への投資は少なく、結果として各ツールが弱くて癖のある、しかも互換性のない言語を抱える状態になっていた。1987年秋、DECのWestern Research Laboratoryでのサバティカル中に、Ousterhoutは「組み込み可能なコマンド言語」というアイデアを着想した。
名前の由来
Ousterhout本人の回顧録によれば、Tclという名前は「Tool Command Language(ツール・コマンド・ランゲージ)」の略で、各アプリケーションが再利用できるライブラリとして組み込める言語という当初の用途に由来する。Tclの目標は3つあり、①アプリケーションが自分の機能を言語に自然に追加できるよう拡張性を持つこと、②多くの異なるアプリケーションで使えるようシンプルで汎用的であること、③アプリケーション同士の機能を「糊付け」して統合するための優れた仕組みを持つこと、だったという。1988年初頭にサバティカルから戻ったOusterhoutはTclの開発を始め、同年春にはグラフィカルなテキストエディタの中で最初のバージョンのTclを動かしていた。
仕組み
Ousterhout本人の回顧録によれば、TkはGUI関連のもう一つの関心から生まれた。1980年代にGUIが普及するにつれ対話型ソフトウェアの複雑さが急速に増しており、少人数の研究グループが革新的な対話システムを作り続けられるか懸念したOusterhoutは、再利用可能な部品でシステムを組み立てることが解決策になると考えた。そこでTclの拡張としてGUI部品の集合を作り、それをTclで組み立ててグラフィカルユーザーインターフェースを構成する実験を始め、これがTkとなった。Tkの開発は1988年末に始まったが兼業のプロジェクトだったため、実用に足る機能が揃うまで約2年を要したという。
小話
Ousterhout本人の回顧録によれば、TclはBerkeley Industrial Liaison Conferenceでの講演をきっかけに1989年ごろから少数の希望者に配布されるようになり、1990年1月のUSENIXカンファレンスでの発表で数百人規模の聴衆から強い関心を集めたことでTclのソースコードをバークレーのFTPサイトで無料公開する決断につながったという。この発表を聞いた一人が、米国国立標準技術研究所(NIST)のDon Libesだった。Libesは対話的なUnixアプリケーションを自動操作するプログラムを作りたいと考えていたが、良いコマンド言語がなくプロジェクトが停滞していた。講演を聞いた彼は急いで帰宅してTclをダウンロードし、Expectと呼ばれる素晴らしいアプリケーションを作り上げ、次のUSENIXカンファレンスの投稿締め切りに間に合わせて論文まで書き上げた。この一連の作業はわずか3週間で完了したとOusterhoutは回顧している。Expectは1990年夏に無料公開されると、システム管理者の間で瞬く間に人気を博し、長年にわたりTclを使った最も有名なアプリケーションであり続けた。
関連項目
- Lua軽量で組み込みやすいスクリプト言語。ゲームやアプリの拡張用に広く採用され、設定やMOD記述の定番となった。