Tcl (,,Tool Command Language``) ist zum einen eine Programmiersprache und zum anderen eine Bibliothek. Tcl/Tk (Tk, ,,Toolkit``) eignet sich aufgrund seiner extrem hochsprachlichen Konzeption (engl.: ,,Very High Level Language``, VHLL ) und seiner graphischen Fähigkeiten hervorragend zur schnellen und portablen [Zim1997] Entwicklung graphischer Oberflächen [Joh1997a] und Visualisierungen [HSAS1996], insbesondere im Klienten-Server Bereich für Intra- und Internetlösungen [TZ1998]. Aufgrund des Entwurfs eignet sich Tcl/Tk für schnelle Entwicklung, graphische Benutzerschnittstellen und plattformübergreifende Entwicklung. Tcl ist auf verschiedenen Ebenen erweiterbar. Dank der Verfügbarkeit des Quellentexts sind Tcl/Tk Interpreter für alle wichtigen Plattformen einsetzbar. Im Gegensatz zu den meisten Hochsprachen, beispielsweise C , muß der Entwickler bei Tcl keine kompletten Codebäume liefern, um Entwicklungen z.B. an bestimmte Plattformen anzupassen.
Tcl / Tk und X11 sind besonders prädestiniert für Ereignis-Programmierung (comp.lang.tcl [V: k.A.] [Ä: k.A.] [Z: 25.01.2001]). Auch wenn in den letzten Jahren viele sehr gute Sprachen und Werkzeuge für eine effiziente Entwicklung und die Erstellung von Oberflächen entwickelt wurden und einen breiten Einsatz gefunden haben, wie z.B. Python und GTK+ , so ist Tcl auf dem Gebiet der Ereignis-Programmierung selbst bei kritischer Betrachtung immer noch die erste Wahl [Sch2000a].
Für diesen Zweck stehen in Tcl eine Vielzahl von Ereignistypen und Modifizierer sowie die Möglichkeit zur Verfügung neue Ereignistypen und Ereignisse, wie virtuelle und synthetische, d.h. zusammengesetzte Ereignisse zu definieren [RT1999].
Insbesondere interaktive X11 Anwendungen bewegen sich während des größten Teils der Laufzeit in einer Ereignis-Schleife (engl.: ,,event loop``).
Tcl / Tk Programme laufen im wesentlichen in zwei Phasen ab. In der ersten wird die Anwendung initialisiert, die Oberfläche aufgebaut und die Datenstrukturen geladen. In der zweiten Phase begibt sich das Programm in eine Ereignis-Schleife , die auf entsprechende Ereignisse wartet. Die Ereignisse ihrerseits rufen eine Routine zur Handhabung der Ereignisse (engl.: ,,event handler``) auf, der veranlaßt, die mit dem Ereignis verbundenen Instruktionen auszuführen.
Während der Aufbau der Tool Command Language ( Tcl ) eher prozeduralen Charakter hat, enthält das entsprechende Toolkit Tk eine Fülle objektorientierter Elemente.
Als Toolkit (,,Werkzeugkasten``) werden im allgemeinen gesammelte Hilfsmittel für besondere Aufgaben bezeichnet. Bei Tcl / Tk ist das Toolkit Tk primär eine Zusammenstellung von Funktionen zur Erstellung graphischer Fensterelemente.
Dabei handelt es sich z.B. um Elemente (engl.: ,,widgets``), die helfen, den Aufbau einer graphischen Oberfläche besser zu strukturieren [Joh1994].
Sehr mächtige Funktionalitäten stellt Tcl im Bereich
der Prozeß-Kommunikation ( IPC )
über seine fileevent
und send
Fähigkeiten
zur Verfügung. Die dadurch
erreichten Möglichkeiten gehen weit über das hinaus, was man
diesbezüglich von allen anderen modernen Shells, z.B. der hervorragenden
Bourne Shell kennt. Die Basis dieser Fähigkeiten ist es, ein Skript
auszuführen, wenn ein Kanal (engl.: ,,channel``) lesbar oder schreibbar wird.
Auf diese Weise können Verbindungen (engl.: ,,file event handler``) zwischen
einem Kanal und einem Skript bzw. Ereignis hergestellt werden.
Eine wesentliche Eigenschaft von Tcl ist, daß Kommandos in Tcl Listen als Argumente empfangen und sie als Kommandos einlesen können. So entstehen konventionelle Kontrollstrukturen als Kommandos und nicht syntaktisch.
Diese und weitere Eigenschaften haben zu einer großen Vielzahl verschiedener Produkte geführt, die auf Tcl/Tk basieren oder dieses nutzen [Lai1995] [Vir1996] und in letzter Zeit auch zunehmend mit zahlreichen Beispielen in den Bereichen Umwelt, Kommunikation und Informationssysteme [HLS2000] [Zer2000].