LinuxCon: Some advice from Uncle Dirk
Posted Sep 25, 2009 13:58 UTC (Fri) by
anselm (subscriber, #2796)
In reply to:
LinuxCon: Some advice from Uncle Dirk by michaeljt
Parent article:
LinuxCon: Some advice from Uncle Dirk
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.
(
Log in to post comments)