[Richard Suchenwirth], Konstanz 2003 ''This Wiki's language shall remain English, but as I had this article ready but never published, I put it up here for people whose German is better than their English ;)'' [http://mini.net/files/ifile01.jpg] [http://mini.net/files/ifile4.jpg] Die Power eines mittelguten Desktop-PC von vor zehn Jahren steckt man heute locker in die Hemdtasche. [PocketPC]s werden oft nur als aufgemotzte Organizer betrieben, erf��¼llen aber mit einem ertr��¤glichen Betriebssystem und einem hierarchischen Dateisystem (Ordner, die wieder Ordner enthalten k��¶nnen) grunds��¤tzlich die Anforderungen an einen vollwertigen Computer. Als leidenschaftlicher Programmierer seit 30 Jahren habe ich mir zu Sylvester einen [iPaq] 3760 zugelegt, und seitdem genie����e ich es, im Liegestuhl auf dem Balkon Programme zu schreiben - in Tcl/Tk. [Tcl] (Tool Command Language, ausgesprochen "tickel") ist eine Scripting-Sprache, etwa vergleichbar mit Basic/Perl/Python usw. - und doch unvergleichlich. Man kann Tcl als eine Kreuzung aus C, LISP und Shells charakterisieren - immer einfacher, aber fast genauso m��¤chtig wie jede von diesen. "Scripting" bedeutet, da���� ein Laufzeitsystem ein Programm ("Script": eine Textdatei) direkt, oder "on the fly" in Bytecode compiliert, ausf��¼hrt. Vorteile: bei der Entwicklung kann man sehr schnell testen, was man ge��¤ndert hat; au����erdem kann man Scripte ohne ����nderungen auf "gro����en" Windows-, Unix-/Linux- oder Mac-Rechnern laufen lassen. Tcl ist portabler als Java. Mehr auf [Einfach Tcl], ����bersetzung der man-Page auf [Einfach man Tcl]. [Tk] (Tool kit) ist die wichtigste Erweiterung zu Tcl: extrem einfache, aber m��¤chtige Komponenten f��¼r grafische Benutzeroberfl��¤chen mit allen Schikanen, sowie Bearbeitung von Bildern. Auch Tk ist auf allen g��¤ngigen Plattformen verf��¼gbar. Tcl und Tk sind seit einigen Jahren auch auf PocketPC portiert - nat��¼rlich kostenlos herunterzuladen (siehe http://wiki.tcl.tk/WindowsCE). Zu meinen Leidenschaften geh��¶ren exotische Sprachen - Arabisch, Chinesisch, Koreanisch, ... Die Kombination von Tcl/Tk (wo alle Zeichen Unicodes sind, also fast alle lebenden Sprachen zulassen) und Windows/CE (das normale TrueType-Fonts gut darstellen kann) macht es ziemlich leicht, etwa chinesische E-books zu lesen, oder arabische W��¶rterb��¼cher zu bearbeiten und zu durchsuchen. F��¼r die Eingabe schreibt man sich einfach selbst virtuelle Tastaturen, die der standardm��¤����igen kaum nachstehen und ebenso einfach mit dem Stift benutzt werden k��¶nnen. Aber auch ohne sehr fremde Sprachen bietet Tcl/Tk viel, was mit der Windows/CE-Grundversorgung einfach nicht m��¶glich ist - so kann man beim Umbenennen von Dateien auch deren Extension (die letzten drei Buchstaben hinter dem Punkt) ��¤ndern, oder Gr��¶����e und ����nderungsdatum auf Byte bzw. Sekunde genau erfahren. Eigentlich macht Tcl/Tk erst Windows/CE zu einem voll nutzbaren Betriebssystem: CE hat keine Konsole ("DOS-Prompt")? Dann schreibt man sich halt eine, in einer Viertelseite Tcl... PocketWord kann zwar HTML-Dateien editieren, aber nur wenn sie schon existieren? Eine Zeile Tcl l��¶st das Problem, indem sie eine neue leere Datei anlegt: close [open test.htm w] Im letzten halben Jahr habe ich Dutzende von Tcl/Tk-Programmen (Spiele, Lernspielzeug, Tools) auf dem iPaq erstellt, und die gelungenen auch ins Web gestellt (http://wiki.tcl.tk/rs) - meist nur wenige Seiten lang, kommentiert und mit Screenshot - bis hin zu einem (Instrumenten-)Flugsimulator [iFly], der gerade mal zwei Seiten Code braucht. Oder eine Stoppuhr, auf 1/100 sec genau, in 21 Zeilen... Das besondere an dieser Form von Open Source Software ist, da���� der Programmcode voll sichtbar ist und von jedem, der etwas Tcl versteht, leicht nach pers��¶nlichen Ideen ge��¤ndert werden kann. Das "Herunterladen" von solchen Skripten geschieht einfach, indem man mit der Maus ��¼ber den Quellcode zieht, ihn kopiert und mit einem einfachen Editor (z.B. Notepad) in eine Datei (*.tcl) speichert. Zum Bearbeiten von Tcl-Skripten auf dem iPaq selbst nehme ich am liebsten PocketWord im simplen Nur-Text-Modus (*.txt). Um so ein Programm, nennen wir es foo.txt, zum Laufen zu bringen, starte ich es entweder aus dem Tcl-Explorer iFile (Menu/File/Run), oder kopiere ins gleiche Verzeichnis eine Datei foo.tcl, die immer so aussieht: set argv0 [file root [info script]].txt source $argv0 An diesem kleinen Beispiel kann man Tcl ein wenig kennenlernen: * Kommandos in eckigen Klammern werden zuerst ausgef��¼hrt * info script gibt den Namen der aktuellen Quelldatei zur��¼ck: foo.tcl * file root entfernt die Extension (.tcl), bleibt: foo * set argv0 .. weist das letzte Wort der Variablen namens argv0 zu - an dies letzte Wort habe ich die Zeichen ".txt" einfach angef��¼gt: foo.txt * $argv0 wird ersetzt durch den Wert der Variablen argv0 * source .. liest die angegebene Datei, also foo.txt, und f��¼hrt die enthaltenen Kommandos aus. Es mag ��¼berraschen, da���� Tk bekannter ist als Tcl - weil auch die Kollegen von Perl, Python usw. gern seine Vorteile nutzen. Tcl ist eine Art Geheimtip - aber es gibt eine freundliche und sehr hilfsbereite Anwendergemeinschaft, die in der Gruppe news:comp.lang.tcl gerne Fragen beantwortet und diskutiert. (Englisch ist allerdings die Umgangssprache). Die gr��¶����te freie Tcl-Softwaresammlung ist unter http://wiki.tcl.tk verf��¼gbar und w��¤chst st��¤ndig - von mir kommen meist (und von anderen auch) Programme, die auf PocketPC und aufw��¤rts laufen... Links auf die PocketPC-geeigneten Programme gibt's nat��¼rlich auf http://wiki.tcl.tk/PocketPC . ---- [Arts and crafts of Tcl-Tk programming]