Programmiersprachen von A bis Z: Tcl/Tk

von Gary L. Ratliff Sr. (eronstuc)

Diesen Monat schauen wir uns Tcl/Tk an. Aus dem exzellenten Buch, "Graphical Applications with Tcl/Tk", 2. Auflage, von Eric Foster Johnson erfahren wir, dass es bei Linux meistens vorinstalliert ist.

Um dies näher zu ergründen, untersuchte ich die verschiedenen Linux Versionen auf meinem Hauptcomputer, um herauszufinden, ob dies so ist und wenn ja, welche Version vorinstalliert ist: PCLinux 2010 tk 8.6, PCLinux 2009-1 tk 8.6, PCLinux 2007 tk 8.4, Debian 2.5-26-686 nicht installiert, Debian 2.6.26 amd 64 nicht installiert, openSUSE 11.2 tk 8.5, Ubuntu 9.10 tk 8.4, Ubuntu 10.04 LTS tk 8.4, Mythbuntu 8.04 LTS tk 8.4, Dreamlinux 3.5 tk 8.4, Absolute Linux (Slackware 13.0.0.0.0) tk 8.5, KNOPPIX 6.2 tk 8.4, Linux Mint 8 (Helena) tk 8.4 und Mandriva 2010 tk 8.6.

Tcl (tool command language (Werkzeugbefehlssprache)) wurde von John Ousterhout während der späten 1980er ausgearbeitet. Die Idee dazu kam ihm erstmals 1987, als er an der Ausgestaltung von Tools arbeitete. Er begann nicht mehr am System zu arbeiten und später ging er die Entwicklung von komplexen GUI's (grafischen Benutzerinterfaces) an. Diese Idee führte letztendlich zu Tk bzw. zu einem grafischen Werkzeugsatz.

Einen Wunsch machen

Die Tcl/Tk Zusammenstellung umfasst zwei Interpreter. Einer ist tclsh, eine bash-ähnliche Sprache (oder ähnlich der Korn Shell, wenn Sie sich ein paar Monate zurückerinnern), die nur tcl versteht. Der andere, der die grafischen Eigenschaften von tk erlaubt, ist unter dem Namen wish bekannt. Er beinhaltet meist die benutzte tk-Version, z.B. wish80, die im Buch von Eric Foster Johnson verwendet wird. Um zu zeigen, wie einfach eine grafische Oberfläche erstellt werden kann, wird hier das allgegenwärtige „Hello World“ Programm in tk vorgestellt:

button .a -text "Hello World!" -command { exit} ; pack .a

Nach dem Eingeben dieser zwei Zeilen in die Konsole, die erscheint, wenn Sie den wish-Befehl eingeben haben, wird bald ein Button erzeugt, der die Nachricht „Hello World!“ anzeigt. Dieser schließt die grafische Oberfläche, wenn man darauf klickt. Nach dieser einfachen Einführung können Sie beginnen, die Details der Erstellung und Benutzung der verschiedenen Widgets kennen zu lernen, die das tk-System anbietet.

Das Buch wurde etwa 10 Jahre nach Ousterhouts erster Entwicklung der Idee von Tcl geschrieben. Auf mehr als 800 Seiten werden die Details für die Benutzung von Buttons, Dialogen, Fenstern, Canvas Widgets und dem Rest der verfügbaren Einträge erklärt und veranschaulicht. Das Buch beinhaltet auch eine CD mit allen Codebeispielen und der Version 8.0 von wish und eine frühere Version der CD.

Anfang der Woche, kam meine Tochter von einem Besuch in Nashville zurück und brachte mir von meinem Bruder seinen alten IBM Aptiva Rechner mit. Dieser Computer hatte Windows 95 installiert und schon bald waren Version 8.0 von wish und Version 8.0 von tclsh auf diesem älteren System. Der Text fasst die Details zusammen, wie man Tcl in die Sprache C einfügt und auch, wie man eigene Erweiterungen für die Sprache entwickelt.

Schon früh weist Eric in seinem Buch darauf hin, dass Tcl weiterentwickelt wird. Es sind verschiedene neue Versionen herausgekommen, seitdem Version 8.0 veröffentlicht wurde. In einer E-Mail an mich empfiehlt er einen Text von Ousterhout, der im Mai 2008 geschrieben wurde, in dem das Buch als bestes auf dem Markt beschrieben wird, das diese Sprache erklärt.

Von Demo's lernen

Gegenwärtig haben wir die aktuellste Version von wish und den tclsh-Programmen bereits auf unserem System installiert. Damit Sie nicht damit belastet werden Quelltextbeispiele zu bekommen und einzutippen, werde ich Ihnen zeigen, wie Sie mächtige Demos bekommen, die einige Eigenschafte des Tcl/Tk-Systems einfach veranschaulichen.

Wenn Sie „tcl/tk downloads“ bei Google eingeben, dann wird eine der angezeigten Seiten, die für die „active state“ Version sein:

pic

Dort gibt es eine freie Gemeinschaftsversion und weitere, die vollen Support für professionelle Entwickler bieten.

Die freie Community-Version ist allerdings in vielen Geschmacksrichtungen erhältlich. Dies zeigt deutlich die nächste Seite.

pic

Die Version, die ich zum Downloaden und Installieren wählte, war 8.6.0.0b3. Diese wird Ihr System im gewohnten tar.gz Format erreichen. Ihr Ziel ist es, das System zu installieren. Dafür benötige Sie Rootrechte zum Erstellen der Verzeichnisse, in die das System installieren wollen. Es wird ein einfaches Skript benutzt, um das System zu installieren. Dies wird alles mit den folgenden Schritten erledigt:

  1. Herunterladen der Datei ActiveTcl8.6.0.0b3.292682-linux-ix86-threaded.tar.gz
  2. gunzip ActiveTcl8.6.0.0b3...................tar.gz
  3. tar -xvf ActiveTcl8.6........................tar
  4. cd ActiveTcl8
  5. ./install.sh

Das System wird in das Verzeichnis /opt/ActiveTcl-8.6 installiert.

Der Ordner bin dieses Verzeichnisses enthält den wish 8.6 und tclsh 8.6 Interpreter und das Demoverzeichnis mit verschiedenen Tcl-Skripten. Diese werden die Anwendung von vielen Widgets und Eigenschaften des Tk-Systems zeigen.

pic

Um zu diesen Demos zu gelangen, ist der folgende Befehl in einem xterm- oder einem anderen Terminalfenster einzugeben:

wish8.6 /opt/ActiveTcl-8.6/demos/Tk8.6/widget.tcl

Jetzt können Sie wirklich etwas Zeit sparen, indem Sie die Historydatei betrachten und die Nummer dieses Befehls notieren. Um nun dieses System erneut zu starten, geben Sie nur ! gefolgt von der Nummer aus der Historydatei ein. Auf meinem PCLinuxOS 2007 war die verweisende Nummer 999, während es Nummer 108 bei meiner 2010er Installation war.

pic

Ich habe das System auch auf meinem PCLinuxOS 2007 installiert, welches sich auf einem weiteren Computer in meinem Netzwerk befindet. Da dieses tk 8.4 benutzte, kopierte ich einfach die wish 8.6 Dateien und tclsh8.6 Dateien in die Bereiche der 8.4 Dateien. Beachten Sie auch, dass Sie die Version 8.6 von wish und tclsh nutzen, die vorinstalliert waren und nicht die Active State Version.

Wir werden diese Diskussion über die Demos mit einem Beispiel der Rube Goldberg Demo abschliessen. Der Text stellt fest, dass der Mensch komplizierte Lösungen zur Ausführung einer einfachen Aufgabe findet.

Ein großartiges Beispiel für diese Komplexität wird jedes Mal durch TCM (Turner Classic Movies) gezeigt. Sie behandeln derzeit den Lauf einer Murmel und deren Schleifen, bevor schließlich das Video beginnt. Hier in der Rube Goldberg Demo:

pic

Der Ball fällt auf die Wippe, was das Streichholz entzündet. Dies verursacht wiederum den Fall des Gewichts auf die Käfigtür, wodurch die Maus freigesetzt wird.

Ich hoffe, dass Sie diese Version herunterladen und installieren, da Sie diese Annimation wirklich genießen werden. Diese Demo erlaubt es Ihnen auch, den Quellcode zu betrachten, um zu lernen, wie solche Widgets erstellt werden. All dies zeigt, wie einfach man grafische Anwendungen mit dem Tcl/Tk System erzeugen kann. Um mehr zu lernen und selbstständig zu programmieren, können Sie die Tcl/Tk Dokumentation verfolgen, die alle Details zur neusten Version des Systems enthält.

Jetzt könnten Sie sich wünschen, die Webseite des im Text erwähnten Autors zu besuchen. Als ich den Namen das erste Mal hörte, dachte ich, dass ich diesen bereits zuvor gehört hätte. Jetzt beim Durcharbeiten des Buches, welches er schrieb, merken wir, dass er viele Beiträge für derartiges Lernen rund um Linux und andere Open Source Software geschrieben hat. Ich fand bald, dass ich ein weiteres seiner Werke „Teach Yourself Linux“ lesen musste. Dieses war auch einfach zu lesen und deckte die Thematik komplett ab.

pic