Open Source im professionellen Einsatz
Linux-Magazin 09/2005

Die fünfte Feder: Die neuen Features von Tcl 8.5

Taufrischer Federschmuck

Tcl 8.5 steht kurz vor der Fertigstellung und bringt neben 50 Verbesserungen eine echte Überraschung mit: Die Basissprache erhält einen neuen Datentyp. Auch das eindrucksvolle Tile-Paket reift zusehends. Mit ihm nähert sich das Aussehen von Tk-GUIs dem anderer Widget-Bibliotheken.

393

Der recht kleine Versionssprung [1] von Tcl 8.4 auf die bald erscheinende Release 8.5 lässt kaum große Änderungen vermuten - weit gefehlt: Die neue Version glänzt mit 50 kleineren Verbesserungen sowie einem neuen Datentyp in der Basissprache. Letzteres ist einmalig in den vergangenen zehn Jahren.

Üblich und eher zu erwarten wäre, so umfangreiche neue Funktionen als Erweiterungspakete zu implementieren. Selbst die diversen objektorientierten Tcl-Sprachvarianten sind heute als Erweiterungsmodule implementiert [3]. Diese Strategie hält den Kern schlank und sorgt dafür, dass die hervorragende Unterstützung der drei Plattformen Unix, Mac OS X und Windows nicht leidet.

Die überraschende Neuerung in Tcl 8.5 heißt Dictionary. Dieser Datentyp geht auf einen Vorschlag von Donal K. Fellows und David Cargo zurück, die ihn als Tcl Improvement Proposal (TIP) einreichten [4]. Dictionaries heißen in anderen Sprachen auch assoziative Map oder Hashtabelle. Ähnlich einem Wörterbuch speichern sie Schlüssel-Wert-Paare. Tcl hat mit dem »array«-Kommando zwar längst etwas Ähnliches zu bieten; näher betrachtet unterscheiden sich Arrays und Dictionaries aber deutlich.

Array oder Dictionary

Array und Dictionary erfüllen ungefähr die gleiche Aufgabe: Sie speichern zu beliebig vielen Schlüsseln (Key) je einen Wert (Value). Die Reihenfolge der Schlüssel ist unbestimmt, nur die Zuordnung zu ihrem Wert ist relevant. Perl nennt die entsprechende Datenstruktur Hash Table, auch andere Sprachen kennen solche assoziativen Arrays. Tcl-Arrays funktionieren intern allerdings als Sammlung von Variablen.

Das hat unter anderem zur Folge, dass ein Programm jeden einzelnen Wert per »trace«-Kommando überwachen kann - beim Überwachen des ganzen Array entsteht enormer Overhead. Bei Dictionaries ist nur das Überwachen der kompletten Datenstruktur möglich, das klappt dafür ohne Geschwindigkeitsnachteil.

Übergabe am Stück

Es ist unmöglich, Arrays als Ganzes (by Value) an eine Funktion zu übergeben, das gelingt nur auf dem Umweg über einen Export in die Listendarstellung. Ein Dictionary lässt sich dagegen problemlos und ohne Umschweife weiterreichen. Zudem dürfen die Dict-Schlüssel eine baumähnliche Unterstruktur aufweisen. So gelingt es, hierarchische Datenstrukturen in einem Dictionary abzubilden. Außerdem erweisen sich die Filter- und Schleifenmethoden als sehr praktisch (siehe Tabelle 1).

Viele Programmierer sind von den Vorzügen der Dictionaries inzwischen überzeugt. Beispielsweise verwendet die neue Version 1.5 des PostgreSQL-Binding [6] optional Dictionaries anstelle der Arrays, um die Ergebnisse einer SQL-Abfrage effizient zu speichern: »pg_result -dict«. Dieses Feature ist noch experimentell, bis Tcl 8.5 als finale Version vorliegt.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • ÜbersetzO-matik

    Nicht nur Emacs ist mittels Skripting erweiterbar. Auch Vim, der zeitgemäß erweiterte Uralt-Editor »vi«, enthält eine eingebaute Skriptsprache. Sie ist nicht ganz so üppig wie Emacs-Lisp, braucht aber weniger Klammern. Wir erklären sie anhand eines Editor-Plugins zum Übersetzen von Wörtern.

  • Wörterbücher auf dem E-Book-Reader
  • Gut gezielt

    Jeder wünscht sich Programme, mit denen er flink arbeiten kann. Schnelle Software entsteht aber nicht durch flächendeckende, sondern durch wenig Optimierung - an den richtigen Stellen. Dieser Workshop zeigt, wie Sie bei Python-Programmen ins Schwarze treffen.

  • Python

    Einsteigerfreundlich, schnell zu lernen und flexibel: Die Skriptsprache Python genießt trotz des vermeintlich gefährlichen Namens einen guten Ruf. Dank zahlreicher Module und einfacher Syntax reichen für Datei-Operationen, Ein- und Ausgaben und selbst fürs Monitoring eines Servers wenige Zeilen Code.

  • Vom Thron gestürzt

    Nur wenige Tage nach Erscheinen des vorletzten Hefts gingen die Einsendungen im Stundentakt ein. Anhänger aller möglichen Sprachen wollten beweisen, dass sie besser programmieren können als es die Sprachpäpste im Linux-Magazin getan hatten. Die Auswertung zeigt: Das Volk irrt nicht.

comments powered by Disqus

Ausgabe 04/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.