LWN.net Logo

LinuxCon: Some advice from Uncle Dirk

LinuxCon: Some advice from Uncle Dirk

Posted Sep 25, 2009 10:10 UTC (Fri) by michaeljt (subscriber, #39183)
In reply to: LinuxCon: Some advice from Uncle Dirk by anselm
Parent article: LinuxCon: Some advice from Uncle Dirk

Except that Tcl applications had to be written in Tcl, which might put off some developers :) (I do seem to remember that Tk could be coupled to other things, but I don't remember that taking off). But was a Tk GUI really that easy for a non-programmer to rip out and replace without changing the underlying application?


(Log in to post comments)

LinuxCon: Some advice from Uncle Dirk

Posted Sep 25, 2009 13:58 UTC (Fri) by anselm (subscriber, #2796) [Link]

The original idea behind Tcl/Tk was that the meat of an application would be written in a language like C, and its functionality be made available as Tcl commands. These Tcl commands could then be used to »script« the application, to allow automated testing, or -- in conjunction with Tk -- to create a GUI for the application. Hence the actual application code (in C, mostly) and the GUI code (in Tcl/Tk) would be neatly separated. This approach was (and presumably still is) used to great effect, for example, in various VLSI design applications.

Tcl got much of its bad reputation because people would try to write big(gish) programs in Tcl itself rather than subscribe to the philosophy outlined above. It took the language some time to acquire the necessary properties to be really useful for larger applications, but by that time much of the damage was already done. Tcl/Tk did earn its inventor, John K. Ousterhout, an ACM Software System Award in 1997 (something that all the other X11 toolkits have yet to achieve), so it is officially a Good Idea.

It is worth noting that when Tcl/Tk came out (early 1990s) it was running rings around its competitors such as OSF/Motif as far as ease of development was concerned. It can also be surmised that if, instead of inventing various other X11 toolkits from scratch, the community had poured the same amount of effort into improving Tcl/Tk (which already existed and worked quite well), we would all be much better off :^) For example, Gtk started out as the »GIMP toolkit«, but if the original developers of the GIMP had decided to come up with a better Tk canvas widget rather than implement a complete new X11 toolkit from the ground up, they could have saved themselves a whole amount of work, and the GIMP would be a better program even today. This is the NIH phenomenon at work.

LinuxCon: Some advice from Uncle Dirk

Posted Sep 25, 2009 16:00 UTC (Fri) by michaeljt (subscriber, #39183) [Link]

>The original idea behind Tcl/Tk was that the meat of an application would be written in a language like C, and its functionality be made available as Tcl commands.
Indeed, in my first proper job I worked on a scripting language for processing vector data which was based on Tcl.

>This is the NIH phenomenon at work.
I wonder whether how much of the (useful part of the) current FOSS ecosystem would exist without all that NIH though :) Perhaps we would all be using Windows or Macs. Be that as it may, if I ever get round to implementing the thing I discussed above, it is likely to be as a lightweight binding for Glade-3, which looks like it does ninety percent or more of what I am looking for now.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds