Open Source im professionellen Einsatz
Linux-Magazin 12/2002

Die Features der neuen Tcl/Tk-Version 8.4

Schneller, höher, weiter

Sie ist schneller als die Vorgängerversion und mit neuen Widgets und vielen Verbesserungen unter der Oberfläche ausgestattet: Seit Mitte September ist Tcl/Tk 8.4 fertig. Spinbox, Labelframe und Panedwindow, Undo-Fähigkeit im Text-Widget und besseres Handling von Listen führen die Feature-Liste an.

487

Am 18. September war es so weit: Jeff Hobbs konnte das Release Announcement zu Tcl/Tk 8.4 versenden. Neben vielen Bugfixes für alle Plattformen, MacOS-X-Unterstützung und 64-Bit-Support bietet die neue Version eine ganze Reihe neuer Features, die für den Einsatz unter Linux interessant sind.

An der Basis

Änderungen an Tcl fallen auf den ersten Blick nicht so stark auf wie ein neues Widget in Tk - aber gerade an der Basis hat sich einiges getan. Eine wichtige Verbesserung kommt ohne neues Kommando aus: Tcl 8.4 ist schneller geworden, in einigen Fällen ist es doppelt so schnell wie die Vorgängerversion. Die neue Version übersetzt mehr Kommandos in Bytecode und führt ihn auch schneller aus als bisher. Besonders bei Schleifen mit »for« oder »while« fällt das neue Tempo auf, aber auch Operation mit Listen sind schneller.

Bei vielen Kommandos wurde die Syntax erweitert, es sind neue Optionen und Parameter hinzugekommen. Einige Befehle sind gänzlich neu. Tabelle 1 fasst die wesentlichen Änderungen und Neuerungen zusammen. Viel Feinarbeit ist in die Kommandos für Listen geflossen. Bei Tcl sind Listen die am häufigsten benutzte Datenstruktur, Verbesserungen in diesem Bereich sind daher besonders gern gesehen.

Die auffallendste Änderung betrifft den direkten Zugriff auf innere Elemente von geschachtelten Listen, also Listen, deren Elemente selbst wieder Listen sind. Sie werden häufig benutzt, um komplexe Informationen zu transportieren. Listing 1 wandelt den Inhalt von »/etc/group« in eine geschachtelte Liste um und greift dann auf ihre Elemente zu. Die Originaldatei könnte wie folgt beginnen:

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:

Diese Datei wandelt das Listing zeilenweise (mit Hilfe von »gets«) in Listenelemente um. Diese Elemente sind selbst wieder Listen (durch das »split«-Kommando getrennt). Das Ganze sieht dann so aus:

{root x 0 root} {bin x 1 root,bin,
daemon} {daemon x 2 {}}

Mit der Angabe von mehreren Indizes extrahiert »lindex« direkt ein beliebiges Element: »lindex $groups 2 0« greift auf die dritte Liste zu (die Zählung beginnt bei null) und darin auf das erste Element, also den String »daemon«. Früher mussten dazu mehrere Kommandos geschachtelt werden.

Das neue »lset«-Kommando verändert direkt ein Element in einer Liste. In älteren Versionen musste man mit »lreplace« eine neue Liste erzeugen. Die neue Liste konnte man zwar in derselben Variable speichern, der Aufwand ist dabei aber deutlich höher.

Tabelle 1: Neue Features in Tcl 8.4

Listing 1: Listen mit Tcl 8.3 und 8.4

01 set fd [open /etc/group r]
02 while {[gets $fd line] >=0} {
03     lappend groups [split $line :]
04 }
05 close $fd
06 
07 set index 5
08 
09 # Alte Version mit Tcl 8.3
10 set name  [lindex [lindex $groups $index] 0]
11 set gid   [lindex [lindex $groups $index] 2]
12 set users [lindex [lindex $groups $index] end]
13 puts "$name: gid $gid, users $users"
14 
15 set element [list $name x $gid ""]
16 set group [lreplace $groups $index $index $element]
17 
18 # Neu Version mit Tcl 8.4
19 set name  [lindex $groups $index 0]
20 set gid   [lindex $groups $index 2]
21 set users [lindex $groups $index end]
22 
23 lset groups $index end $users

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • Oberfläche aufpoliert

    BWidgets ergänzen die normalen Tk-Widgets um häufig benötigte GUI-Elemente wie Tree und Notebook. Anders als die meisten Alternativen sind sie in reinem Tcl/Tk geschrieben und eignen sich daher bestens für plattformübergreifende Anwendungen.

  • Textarbeit

    Ob als Ascii-Editor oder für interaktive Anzeigen mit verschiedenen Schriften und Bildern - das Textwidget von Tk ist sehr flexibel einsetzbar. Diese Federlesen-Folge erklärt das Universalwidget anhand eines einfachen Editors und eines Readers für RSS-Dateien.

  • 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.

  • WordPress 4.8 veröffentlicht

    Die Entwickler des beliebten Blog- und Content-Management-Systems WordPress haben eine neue Version freigegeben. Unter anderem verbessert sie den Umgang mit Links, enthält neue Widgets, bring ein überarbeitetes Text-Widget mit und bietet im Dashboard eine neue News-Sektion.

  • Tk à la carte

    Wenn ein Programm freundlich zu seinen Benutzern sein will, dann sollte es auch deren Sprache sprechen. Die Lokalisierung sieht Tcl/Tk bereits im Basispaket vor. Dynamische Menüs machen Applikationen für ihre Benutzer intuitiv bedienbar.

comments powered by Disqus

Ausgabe 10/2017

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

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