Tcl steht für Tool Command Language, Tk für ToolKit.
Gesprochen wird es als Tickl-Tiekäh.
1988 entwickelte Prof. John Ousterhout von der University of California,
Berkeley, eine Programmiersprache Tcl, die sich
einfach in eigene Anwendungen einbinden läßt und somit ein programmierbares
Customizinginterface bereitstellt.
Im Gegensatz zu VBA von Microsoft, was nur für Office-Pakete existiert,
kann Tcl in beliebige Applikationen (vom Entwickler) eingebunden werden.
Anfang der neunziger Jahre entstand dazu ein Werkzeug zum einfachen
Erstellen graphischer Nutzerschnittstellen, Tk, das auf Tcl aufsetzt.
Mit der Tcl/Tk-Anwendung wish können interaktiv Tcl/Tk-Befehle
oder -Programme getestet und ausgeführt werden. Unter Unix kann wish
als Shell für Scripte eingesetzt werden:
#!/usr/local/bin/wish
Tcl/Tk-Befehle
...
Unter Windows läßt sich wish für den Dateityp tclregistrieren.
In der Folge entstanden sowohl viele Anwendungen mit
Tcl-Programmierinterface als auch Anwendungen mit reinem Tcl/Tk-Code.
Dazu kamen viele Erweiterungen wie neue Befehle, wie
Datenbank-, Internetschnittstellen und neue Widgets (graphische Komponenten).
Vor zwei Jahren begann die Portierung von Tcl/Tk von Unix-Systemen auch
auf Windows- und Macintosh-Rechner. Ebenso ist für diese Plattformen
ein Tcl/Tk-Plugin für WWW-Browser verfügbar, das die Ausführung von
Tcl/Tk-Programmen in einer gesicherten Umgebung (Sandbox) des Browsers
ermöglicht.
Mit dem Wechsel von John Ousterhout zu Sun entstanden Schnittstellen
zu Java, so daß Tcl-Scripts aus Java-Programmen genutzt werden können und
umgekehrt. Ebenso existiert eine Tcl-Implementierung in Java.
Aktuell wird an der Internationalisierung von Tcl/Tk gearbeitet, i.e.
Unterstützung von Mehrsprachigkeit, Datums- und Zahlenformaten, großen
Zeichensätzen.
Die aktuellen Versionen sind Tcl/Tk 8.0 (stabil) bzw. Tcl/Tk 8.1 (beta).
Anfang 1998 gründete J. Ousterhout eine eigene Firma, Scriptics Corp.,
um Tcl/Tk weiterzuentwickeln und kommerzielle Produkte im Tcl-Umfeld
zu vermarkten.
Einsatzgebiete
Customizing-Schnittstelle für eigene Applikationen.
Reine Tcl/Tk-Anwendungen als schneller Prototype bzw. Endprodukt.
Aufgrund des eingebauten JIT-Compilers reicht die Performance oft
aus.
Problem: Programm liegt komplett als Quelltext vor - Schutz des geistigen
Eigentums.
Abhilfe: Plus-Extension: setzt das Programm in Maschinencode um, der
Tcl-Code wird zumindest teilweise versteckt. Oder Vorgehen nach nächstem
Punkt.
Implementation der zeitkritischen oder zu schützenden Teile als eigene
Funktionen, Steuerung in Tcl/Tk.
Dieses Vorgehen wird heute sehr häufig benutzt.
WWW-Browseranwendungen. Im Gegensatz zu JavaScript leistungsfähiger
und kompatibel zwischen den Browsern Netscape und IE.
WWW-Serveranwendungen. Alternative zu Perl (Geschmackssache), Performance
vergleichbar.
Internet-Client-Server-Anwendungen. Der WWW-Server für Tcl/Tk ist komplett
in Tcl implementiert.
Datenbankanwendungen. Für die meisten Datenbanken existieren
Tcl-Erweiterungen.
Literatur
J. Ousterhout: Tcl and the Tk Toolkit. Addison Wesley.
(leider etwas veraltet)
B. Welch: Practical Programming in Tcl and Tk. Addison Wesley,
2. Auflage 1997.
(aktuell bis Tcl/Tk 8.0).
WWW-Server, Software
http://sunscript.sun.com:
Tcl/Tk - Quellen, Dokumentation, Bibliotheken für verschiedene Plattformen.