Tcl/Tkとは、スクリプト系のプログラミング言語の一種である。
Tcl(Tool Command Language)という言語と、Tcl用に書かれたGUIツールキットであるTkを合わせて、Tcl/Tkと呼ぶ。制御構造すら持たない非常に簡単な文法が特徴。また、C言語などによるコマンドの拡張が簡単に行えるよう設計されている。
プログラムは文字列とそのリスト構造であり、文法上は数値も扱えない。リストの1番目の文字列がコマンドとして解釈され、2番目以降はコマンドへの引数となる。
プログラムの例1
# 0から9までの数を表示する
set i 0
while { $i < 10 } {
puts $i
set i [ expr $i + 1 ]
}
改行かセミコロンまでが一組のリストで、一つの文字列は空白で区切るか、{}又はダブルクオートで囲む。この例では、set, while, puts, exprがコマンド。$iは変数iの値に置換される。[]で囲むと一つのリストと見なしてコマンドを実行後にその結果に置換される。
Tkで"Hello World"を書くとこうなる。
プログラムの例2
# "Hello World" を表示
label .l -text { Hello World }
pack .l
90年代初めにTcl/Tkが登場する前は、UNIXでのGUIアプリの開発といえば、C言語でX11のAthenaウィジェットをしこしこ叩いてやるのが一般的な開発であり、"Hello World"一つ表示するのにも何行もソースコードを書く必要があった。もしくはツールキットから自作する必要があった。
それがTcl/Tkではたったコマンド2つでできる上にコンパイルも必要ない。処理系さえ移植すればどこでも動くクロスプラットホームで習得しやすい開発環境である。
しかし、Tcl/Tkの登場からやや遅れて、PCの高性能化、WindowsとVisual BasicとPC上の開発環境が整ってきたことや、WWWの流行があり、Tcl/Tkはあまり利用されずに現在に至る。ただ、GUIツールキットを持たないPerlやRubyといった言語では独自のツールキットを実装せずTkを利用しているので間接的に使っているアプリケーションはある。
以前バージョンのルックアンドフィールは古くさいデザインだったが、Tcl/Tk8.5.0(2007年12月)から、WindowsやMac OS XなどOSの標準に沿ったものへ変わった。
残念ながら和書では古い情報しか得られない。日本ではそれくらいマイナーです。Webか洋書を探してください。
- 公式サイト
- ActiveState社から出ている製品(無料)
- マイコミジャーナルの記事掲示板
6 ななしのよっしん
2017/02/10(金) 00:09:58 ID: b64IRpeP4W
tkのないtcl自体は地味にciscoルーターに搭載されて生き永らえてるらしい。日本語版wikipediaにはまったく書いてないけど。コンソールから叩くスクリプト言語としては最適解に近いし、今更積極的に捨てる理由もないだろうから、ciscoが滅びない限りは死なないのかもしれない
7 ななしのよっしん
2017/11/08(水) 12:39:11 ID: Jqnq8a4MC5
最近は見た目が良くなってるね。
8 ななしのよっしん
2018/04/27(金) 16:17:23 ID: na2DproFX9
Tclはともかく、Tkはこれからも使われつづけるんじゃないの?
QtやElectronはあるものの、ほとんどのプラットフォームに移植されてるっていう莫大な利点があるし。
急上昇ワード改
最終更新:2025/12/12(金) 16:00
最終更新:2025/12/12(金) 16:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。