Tcl/Tk初心者のためのブックガイド
tkDermはバージョン1.4からTclのパッケージを利用してユーザーが新たな機能を追加できるようにしました。またスクリプトは公開されているので自分の用途に合わせて改変することも自由です(ただし改変したものを再配布する場合は改変した部分も含めてスクリプトを公開する必要があります)。
tkDermのパッケージを書いたり、バグを修正したり、改良したりするためにTcl/Tkの知識が必要です。ところが現在、書店のコンピュータ関連書棚に行ってもTcl/Tkに関する本がほとんど見当たりません。私がtkDermを書き始めた2000年ころには数種類の日本語によるTcl/Tkの本が置かれていたのに寂しいかぎりです。WikipediaのTcl/Tk項目によれば、TclはPerl,Python,Rubyなどのスクリプト言語に比べマイナーで、特に国内のユーザー数が少ないとのこと。後述のEric Raymond本によると1996年にはPythonハッカー1人につきTclハッカーが5人、Perlハッカーが12人といわれていたが、2003年のSourceForge(オープンソースのソフトウェア配布サイト)の数字からすると、Python 3:Tcl 1:Perl 7という具合にTclユーザーが減少しているらしい。このような背景があってTcl/Tkの特に日本語の本の出版点数が減っているのでしょう。
このようにTcl/Tkの情報が限られている中、tkDermを改良してみたいTcl/Tk初心者のためにブックガイドを用意しました。
以降、各セクションは邦訳書名(もしあれば)、原書名に続いてその本の簡単な説明から成ります。
Tcl&Tkツールキット (SOFTBANK BOOKS—ADDISON‐WESLEYプロフェッショナルコンピューティングシリーズ)
John K. Ousterhout (著), 西中 芳幸 (翻訳), 石曽根 信 (翻訳)
単行本: 484ページ
出版社: ソフトバンククリエイティブ (1995/11)
Tcl and the Tk Toolkit (Addison-Wesley Professional Computing Series)
John K. Ousterhout (著)
ペーパーバック: 480ページ
出版社: Addison-Wesley Pub (1994/3/31)
Tclの作者によるTcl/Tkの解説書。後述のEric Raymond本によると、「この本はPractical Programming in Tcl and Tk [Welch]によってかなりの部分乗り越えられてしまっている」。記載されている情報量という点ではその通りなんですが、開発者本人による記述という強みは確かにあります。出版からかなりの年月を経ているので最新の情報は盛り込まれていませんが、特に初心者にとってTclおよびTkのコアな部分の解説はWelch本よりわかりやすいと思います。私見では、全くの初心者はまずこの本で基本を理解してから、Welch本で肉付けするなり最新情報を補足するなりするのがよろしいかと。私は日本語訳で読みましたが、残念ながら邦訳は絶版のようです。アマゾンに原書第2版が近々発売されるとのアナウンスがあります。
Tcl/Tk入門
ブレント・B. ウェルチ (著), 西中 芳幸 (翻訳), 石曽根 信 (翻訳)
単行本: 708ページ
出版社: ピアソン・エデュケーション; 第2版 (1999/05)
Practical Programming in Tcl and Tk
Brent B. Welch (著), Ken Jones (著), Jeffrey Hobbs (著)
ペーパーバック: 882ページ
出版社: Prentice Hall; 第4版 (2003/6/10)
Tcl/Tk解説書の決定版。あらゆる話題を網羅し、着実に版を重ねているため新しい情報も盛り込まれています。原書は2008年10月現在第4版。邦訳は第2版とやや古くしかも絶版。欠点は900ページ近いボリュームのため通読が困難なこと。幸い各章はかなり独立しているため、基礎知識がある人が興味のあるトピックに関する章を必要に応じて読むために適しています。tkDermの環境設定は本書のコード例に基づいています。その他にもいくつかコード例を利用させてもらいました。私は職場に邦訳、自宅に原書を置いて、レファレンスとして使用しています。
Effective Tcl/Tk (ASCII Addison Wesley Programming Series)
マーク ハリソン (著), マイケル マックレーン (著), 吉川 邦夫 (翻訳)
単行本: 415ページ
出版社: アスキー (1999/07)
Effective Tcl/Tk Programming: Writing Better Programs in Tcl and Tk (Addison-Wesley Professional Computing Series)
Mark Harrison (著), Michael McLennan (著)
ペーパーバック: 432ページ
出版社: Addison-Wesley Pub (1997/12/8)
Ousterhout本が入門書、Welch本がレファレンスとすれば、本書は応用編。Tcl/Tkの基礎知識をもつ人を対象に、ある程度の規模のソフトウェアを書くための実際的なテクニックについて解説しています。本書で紹介されたコードはライブラリとしてまとめられ、そのうちのタブノートブックやプログレスバーなどをtkDermでも利用させてもらいました。またtkDermをパッケージとしてモジュール化する方法は本書で紹介された方法に従っています。2008年10月現在原書は絶版のようですが、邦訳はまだ入手可能のようです。
Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs (Nutshell Handbook)
Don Libes (著)
ペーパーバック: 602ページ
出版社: Oreilly & Associates Inc (1994/12)
副題からわかるようにExpectは対話的プログラムの自動化のためのツールキットでTclで書かれています。本書はExpectの作者本人による解説書です。邦訳はありません。tkDermでは、PostgreSQLの対話的操作を自動化するためにExpectを使用しています。後述のEric Raymond本では、Tcl上に構築され、Tclコミュニティーを越えて広く使われている重要な機能としてTkツールキットとならんでExpectを挙げています。
The Art of UNIX Programming
Eric S.Raymond (著), 長尾 高弘 (翻訳)
大型本: 560ページ
出版社: アスキー (2007/6/19)
The Art of Unix Programming (Addison-Wesley Professional Computing Series)
Eric S. Raymond (著)
ペーパーバック: 560ページ
出版社: Addison-Wesley Pub (2003/9/17)
直接Tcl/Tkを扱ったものではありませんが、プログラミング全般に役立つ本なので採り上げました。本書はオープンソース界の大御所Eric RaymondがUnixコミュニティーで暗黙に共有されてきた特にプログラミングに関する文化や伝統を書籍という形でまとめたものです。周りにコンピュータに明るい人がいない状況で、必要に迫られてソフトウェアを書き始めた人は開発の様々な局面で自分のやりかたが間違っているのではないかと不安になるものです。例えば、プログラミング言語の選び方、データの保存形式、バージョン管理、プロジェクトとアーカイブの命名方法、ドキュメントの配布方法、ライセンスの選び方、ソフトウェアリリースの仕方などについて通常はどうしているかを知りたくても訊ける相手がいなくて困っている私のような人間は結構いるんではないでしょうか。そういう人に本書はうってつけです。Unix文化の外にいる人間がUnix的に行儀の悪い行いをしなくてすむための本とでもいいましょうか。EricによればtkDermのように大文字と小文字を混在させたプロジェクト名は「事務系のいやなやつに見られたいのでない限りはやめたほうがよい」とのことです(汗)。
結論。1冊だけ買うならWelch本。もう1冊買えるならOusterhout本(もうすぐ原書第2版が出るので注意)。あとはお好みで。