{"id":924,"date":"2011-09-26T22:42:00","date_gmt":"2011-09-26T22:42:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-de\/2011\/09\/26\/meine-beruehrungspunkte-mit-tcltk-ueber-die-jahre-hinweg\/"},"modified":"2011-09-26T22:42:00","modified_gmt":"2011-09-26T22:42:00","slug":"meine-beruehrungspunkte-mit-tcltk-ueber-die-jahre-hinweg","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-de\/2011\/09\/26\/meine-beruehrungspunkte-mit-tcltk-ueber-die-jahre-hinweg\/","title":{"rendered":"Meine Ber\u00fchrungspunkte mit Tcl\/Tk \u00fcber die Jahre hinweg"},"content":{"rendered":"<p>\t\t\t\tDiese Zeilen schreiben ich am Vorabend eines Interviews zu einem Auftrag, bei welchem Tcl\/Tk eine tragende Rolle spielt.<\/p>\n<p>Ich \u00fcberlege so, wann ich in den Jahren mit Tcl bzw. Tcl\/Tk oder Tk zu tun hatte.<\/p>\n<p>Anfang der 90-er Jahre (wohl so ca. 1992\/1993) h\u00f6rte ich zum ersten Mal von Tcl\/Tk, und ich verband damit die Hoffnung, die Bedienung &#8220;beliebiger&#8221;, graphischer Oberfl\u00e4chen scripten zu k\u00f6nnen. Da hatte ich etwas in den falschen Hals bekommen; ich h\u00e4tte es halt mal herunterladen, installieren und die Demo-Software durchspielen m\u00fcssen. Aber ich konnte ja auch nicht wissen, dass Tcl\/Tk mit echt bemerkenswert h\u00fcbscher Demo-Software daherkam.<br \/>\nIch war damals in einem Projekt, bei dem auf SunOS4 mit Open Look \/ xview eine graphische Oberfl\u00e4che gebaut wurde, und den Test der GUI zuverl\u00e4ssig scripten zu k\u00f6nnen, das w\u00e4re schon eine tolle Sache gewesen. Das scheint bis heute eine wackelige Angelegenheit zu sein: Record+Play h\u00e4ngt immer davon ab, dass sich die Dimensionen und das Layout nicht \u00e4ndern.<\/p>\n<p>Zwischendurch lass man dann einen derben Spruch von <a href=\"http:\/\/en.wikipedia.org\/wiki\/Richard_Stallman\">RMS<\/a> \u00fcber\u00a0<a href=\"http:\/\/en.wikipedia.org\/wiki\/John_Ousterhout\">John Ousterhout<\/a>. An Details erinnere ich mich nicht mehr, aber es machte nicht Mut, sich mit Tcl\/Tk zu besch\u00e4ftigen. Die Sprache an sich ist nicht wirklich der Bringer. Ousterhout schien nicht,\u00a0<b>der<\/b> Programmiersprachen-erfahrene Sprach-Designer zu sein. AWK und Lisp werden als Einflussgr\u00f6\u00dfen f\u00fcr Tcl genannt. Ich h\u00e4tte immer C-Shell gesagt, mehr als AWK. So viel von Lisp kann in Tcl nicht gelangt sein. Wirklich nicht. Leider.<\/p>\n<p>Zum Jahreswechsel 1994\/1994 geriet ich in die berufsm\u00e4\u00dfige Selbst\u00e4ndigkeit, welche auch zur Folge hatte, dass ich mich im Home-Office IT-m\u00e4\u00dfig auf eigene Beine stellen musste. Ich entdeckte Expect (eine Tcl-Erweiterung) als die tollere Chat-Script-Sprache, um meine PPP-Modem-Einwahlversuche zu automatisieren.<\/p>\n<p>1995 war ich in einem DASA\/ERNO-Projekt, bei dem Ada und Oracle eingesetzt wurden. Ich geriet dort zusammen mit einem anderen (echteren) Berliner Software-Nomaden, mit welchem ich \u00fcber Tcl\/Tk schwadelte.<\/p>\n<p>1996 wurde ich nach Manchester gerufen, wo Expect in einem Projekt zum Testen von Software im Verkehrstechnik-Umfeld eingesetzt wurde. Eigentlich nicht die echten Expect-Erweiterungen sondern nur ein leicht komfortableres Tcl.<\/p>\n<p>Noch in 1996 zog es mich nach M\u00fcnchen, wo wir Tcl\/Tk im EDIFACT-Umfeld einsetzten. Dieses Mal sogar wirklich incl. Tk.<\/p>\n<p>Von M\u00fcnchen ging&#8217;s weiter nach Antwerpen. Hier wurde ein Tcl\/Tk-Script entwickelt, welches nicht nur auf einer Unix-\/Linux-Plattform sondern auch auf Windows und Mac OS &lt;=9 laufen sollte. Und es lief. Nicht besonders GUI-m\u00e4\u00dfig aufreizend, und den wahren Windows- und Mac-Programmierern ein echter Graus, aber es lief. Das Tcl\/Tk-Script wrappte <a href=\"http:\/\/en.wikipedia.org\/wiki\/Revision_Control_System\">RCS<\/a>\u00a0. Der erschwerende Faktor war die Resource Fork auf OS 9. Die musste immer parallel in RCS mitgef\u00fchrt werden. Das war nicht so richtig erheiternd. Diente aber meinerseits dem Broterwerb. Die GUI wurde mit SpecTcl gebaut, einem freien GUI-Builder von Sun f\u00fcr Tcl. Das war erstmal die letzte direkte Ber\u00fchrung mit Tcl.<\/p>\n<p>Mit Tk kam ich 1997 wieder in Ber\u00fchrung, als <a href=\"http:\/\/en.wikipedia.org\/wiki\/Eric_S._Raymond\">ESR<\/a> mit einem Konfigurationsprogramm f\u00fcr fetchmail von sich reden machte, welches er in python mit Tkinter implementierte. Tkinter kapselte Tk f\u00fcr python. Ich kam damals zwar nicht dazu, mit Tkinter etwas Sinnvolles zu bauen, aber ich versuchte mich mit python und IMAP, und die passenden Spuren findet Google wohl bis heute.<\/p>\n<p>Sp\u00e4ter (wohl nach 2003) probierte \u00a0ich auch mal perl\/tk f\u00fcr ein Projekt, aber es kam zu keinem Einsatz.<\/p>\n<p>Im Gegensatz zu C, perl und bash kennt \/ kannte Tcl keine M\u00f6glichkeit, im Code die Zeilennummer einer Quellzeile in Ausdr\u00fccken bzw. Trace-Ausgabe zu verwenden. Das inspirierte mich zu einem Mini-Pr\u00e4prozessor, der mir eine gewisse Zeit meines IT-Lebens ganz n\u00fctzliche Dienste leistete.<\/p>\n<p>Jetzt vor dem Einschlafen und morgen Vormittag werde ich noch Staub von ein paar alten Schinken pusten:<\/p>\n<ul>\n<li>dem Ousterhout-Buch (1994),<\/li>\n<li>dem Buch von Brent B. Welch (1995)<br \/>(dieses Buch gibt es sogar in einer 4. Auflage, upgedatet f\u00fcr Tcl 8.4),<\/li>\n<li>dem Expect-Buch von Don Libes aus dem Verlag o&#8217;Reilly (1995 auf Papier bzw. 1996 als PDF),<\/li>\n<li>der Pocket Reference aus dem Verlag o&#8217;Reilly (1998 auf Papier und als PDF).<\/li>\n<li>Letzte Woche erg\u00e4nzte ich die Dead-Tree-B\u00fccher durch die genannten PDFs;<br \/>das o&#8217;Reilly-Nutshell-Buch aus dem Jahr 1999 kam dabei als PDF ganz neu in meine Sammlung.<\/li>\n<\/ul>\n<div>\nUpdate 2011-09-27:<br \/>\nDas Interview heute Vormittag wurde kurzfristig gecancelt, weil das entsprechende Haus keine Lust auf weitere Interviews hatte.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Diese Zeilen schreiben ich am Vorabend eines Interviews zu einem Auftrag, bei welchem Tcl\/Tk eine tragende Rolle spielt. Ich \u00fcberlege so, wann ich in den Jahren mit Tcl bzw. Tcl\/Tk oder Tk zu tun hatte. Anfang der 90-er Jahre (wohl so ca. 1992\/1993) h\u00f6rte ich zum ersten Mal von Tcl\/Tk, und ich verband damit die [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[672],"tags":[],"class_list":["post-924","post","type-post","status-publish","format-standard","hentry","category-die-programmiersprache-tcl"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0l8-eU","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/comments?post=924"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/posts\/924\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/media?parent=924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/categories?post=924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-de\/wp-json\/wp\/v2\/tags?post=924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}