Erfahrungen mit TCl/TK?

Jeff

Well-Known Member
Hallo zusammen!

Ich suche gerade für ein weitgehend Plattformunabhängiges Softwareprojekt (wenig rechenintensive Datenverarbeitung für den Desktopuser) eine Programmiersprache, die überall läuft und auch die immer gleiche GUI-Plattform mitbringt. Da kommt mir sofort Java und TCL/TK in den Kopf, wobei mir TCL/TK sogar noch unproblematischer erscheint, was die Erhältlichkeit für verschiedenste Desktopsysteme anbelangt.

Hat irgendwer hier bereits tiefere Erfahrungen/Eindrücke mit TCL/TK und insbesondere der Plattformunabhängigkeit gesammelt? Empfehlenswert?
 
Vor einiger Zeit habe ich mit Tcl/Tk mal ein paar kleinere Sachen gemacht, die problemlos unter verschiedenen BS liefen. Ich kanns empfehlen. Zwar gibt es entsprechende Bindings auch unter Lisp, Python, Ruby usw., aber ich fands einfacher, es direkt in Tcl/Tk zu machen. Tcl ist vom Ansatz her etwas ungewohnt, aber ich fands ganz interessant (mag generell Sprachen mit einfacher Syntax).

Tcl und das Tk Toolkit sind zwar schon alte Diener, aber seit 8.5 kann es sich auch optisch durchaus sehen lassen, zumindest, wenn man es richtig macht.

Tools zum wrappen, die das ganze unter Win für den Benutzer bequem machen (FreeWrap und Konsorten), runden die Sache ab.
 
Ich hab mit Tcl/tk nie gearbeitet. Seinem Ruf nach sollte man es aber eher fürs Prototyping und nicht für ernsteres nehmen. Weiß ich aber wie gesagt nicht aus eigener Erfahrung.

Warum nimmst du nicht Qt? Am besten mit C++, wahlweise auch Java oder Python... Das geht auf jeden Fall überall und bietet neben GUI auch OS-unabhängige Libs für Netzwerk, OpenGL, XML, Datenbanken und alles mögliche andere. Qt bietet für C++ auch einige Vorteile moderner Programmiersprachen.
 
Ein Tcl-Crack bin ich zwar auch mit Sicherheit nicht, aber ich hatte schon den Eindruck, dass es Sprachen wie Python oder Ruby in nichts nachsteht. Nun hat Tcl natürlich schon einige Jährchen auf dem Buckel und es kann durchaus sein, dass da bei manchen noch ein Eindruck von vor 10 Jahren nachwirkt, kA. Libs gibts nebenbei natürlich auch für Alles, was das Herz begehrt.

Ansonsten wäre vielleicht eine der auf der JVM aufsetzenden Sprachen eine gute Option, sprich, sowas wie Groovy oder Scala. Ich persönlich habe da allerdings nur Erfahrung mit Clojure, einem modernen Lisp mit wachsender Community. Zwar könnte ich Clojure wärmstens empfehlen, aber nicht jeder mag Lisps und die beste Doku, die ich zu dazu kenne ist nicht frei erhältlich (Programming Clojure bei den Pragmatic Programmers).

Aber, um bei der Sache zu bleiben: Was ich bisher mit Tcl/Tk gemacht habe waren eher kleinere Tools und für den Zweck wars sehr gut; lief ohne Probleme auf Win/Linux/OS X. Nach meiner begrenzen Erfahrung würde ich allerdings sagen, dass ich mir Tcl auch in etwas größeren Projekten vorstellen könnte, ich sähe keinen Grund, es da hinter beispielsweise Python zu stellen.

Letztlich vielleicht einfach nur ... Geschmacksache.
 
Ja hats.

Analog gibts Ltk für Common-Lisp, Tcl::TK, Perl/Tk, oder Tkx für Perl, RubyTk für Ruby, etc. pp.

Ich persönlich finde es bei kleineren Progrämmchen einfacher, direkt in Tcl/Tk zu schreiben, wenn man nicht schon ein fertiges Programm hat, auf das man noch eine GUI setzen will. Je nachdem ...

Wenn man vernünftige Optik haben will, empfehle ich nochmal den Link aus meinem ersten Artikel, da sind auch gleich Beispiele für Perl und Ruby mit aufgeführt – Python soll sich später auch noch dazu gesellen. Wenn man z.B. nicht die ttk::*-Widgets (Tile) benutzt, kanns schnell mal wirklich beschissen aussehen. Dass alte Programme, auch wenn sie unter 8.5 laufen, die alten Widgets benutzen, trägt wohl dazu bei, dass Tk einen eher schlechten Ruf hat.

Wenn man dann mal Ruby, Perl und Tcl im direkten Vergleich sieht, sollte auch klar sein, dass Tcl nichts ist, worum man einen Bogen machen müsste. Wie gesagt, Geschmacksache. ;)
 
@soul_rebel: QT ist prinzipiell eine gute Idee, allerdings befürchte ich da einige Probleme um es wirklich auf jeder Plattform problemlos mitzuliefern, die einem so einfallen könnte (das Projekt aktuell mit kommerzieller Lizenz geplant, ein "kompilier es doch selber" kommt daher nicht ganz in Frage).

@danlei: danke für die Hinweise.
 
@soul_rebel: QT ist prinzipiell eine gute Idee, allerdings befürchte ich da einige Probleme um es wirklich auf jeder Plattform problemlos mitzuliefern, die einem so einfallen könnte (das Projekt aktuell mit kommerzieller Lizenz geplant, ein "kompilier es doch selber" kommt daher nicht ganz in Frage).
Hm, welche Platformen meinst du, wo du es nicht ausliefern können solltest? Lizenztechnisch sollte das kein Problem mehr sein, Qt ist jetzt LGPL.
 
Zurück
Oben