Why tcl/tk? or..isn't tcl what you do to somebody when you want to
make them laugh??
I first noticed tcl (pronounced "tickle") and tk (pronounced "tee-kay") when
I was asked to re-write a large image processing
system based on the
Noesis Visilog language system running on a Sun
SparcStation; this system was the host system for an
Imaging Technologies PipeLined Image Processor
used to capture and process low-photon count
images from a Secondary
Ion Mass Spectrometer used in
materials science studies.
When I was put in front of this system and asked to re-write it, I really
knew very little even about what Unix was, nevermind all of the stuff I just
noted above......
So I was very anxious to develop software quickly and easily since I had
so much to learn before I even got started. The first thing that
worried me was the GUI. I really did not want to spend months learning
how to program under X or Motif or OpenLook. I knew tcl and tk were supposed to
be cross platform tools for GUI and other code development, but a language
that worked on simple string substitution sounded just as bad as the
Noesis Visilog language.
Until I learned tcl and tk. In a week.
I have really not looked back. I have successfully developed GUIs and
other apps in tcl/tk in hours or days that would have taken me weeks or
months in C or C++. I can easily prototype a simple GUI for test and run
the same code in Unix/X or Windows with no alterations.
You can develop high performance stuff in C, then make this code into a
server that responds to client messages. You build the client in tcl/tk.
Voila! One programmer with hard skills can build a software engine while
one programmer with softer skills can work easily in tcl to build a very
nice GUI.
I have also noticed that a lot of tcl programming is done by working
scientists and engineers. That is, things like Perl are used by full
time code jockeys, but working scientists and engineers want to get
something done fast in their discipline, and often turn to tcl to
get the job done.
Tcl/tk related links and resources
General resources:
Tutorials:
History
Papers and other interesting bits
Graphical Design Tools:
Tools like Visual C and Visual Basic from Microsoft are often touted
as high productivity platforms because you can 'Click and Drag' design
a Graphical User Interface with very little programming. If this is
your speed, then you will appreciate some of the tcl/tk based GUI
design tools that are available.
-
Visual Tcl is a
freely-available, high-quality application development environment
for UNIX, Windows, Macintosh and AS400 platforms. Visual Tcl is
written entirely in Tcl/Tk and generates pure Tcl/Tk code.
This makes porting your Visual Tcl applications either unnecessary or
trivial.
-
SpecTcl is a
GUI-builder for Tcl/Tk. It features drag & drop widget creation and
configuration of widgets through a GUI. It is written in pure Tcl/Tk,
so it runs on Unix, Mac and Windows.
-
TKproE is an integrated
program development environment for the TCL/TK scripting language.
TKproE, itself, is completely written in the TCL/TK language.
TKproE supports the rapid development of sophisticated graphical user
interfaces. TKproE takes advantage of TK, a widget set that is
accessible through TCL, a very efficient interpreted programming
language. With TKproE the user can build or modify application
programs while they are running. This makes it possible to test
program changes immediately without the cost of compiling the application.
Graphics
Interesting applications using tcl/tk:
Programs using tcl/tk are a-plenty. As noted, engineers and scientists
roll lots of their own code using tcl/tk, so there are lots of specialized
programs floating around in things like
crystallography or
astronomy applications. Then, of course, tcl is intended to be an
embedded application, like Lisp in Autocad, so you have situations where
tcl is the 'under-the-hood-scripting-language' for advanced
chip design software.
This list will try to outline a few applications that use tcl and tk for
interesting apps. There really are a lot of applications that could
be listed here, but I will work to list just a few interesting ones
and let the reader/researcher find more on their own. Sometimes, research
is a pleasure best left to the explorer.
VTK (Visualization ToolKit)
The VTK system is a career unto itself. In fact, as of this writing in
2006, there are many organizations that are hiring folks with VTK
background (students, take note). VTK is used in everything from
3D medical imaging to molecular imaging to weather and other large-data
set visualizations. Although VTK is developed as a large C++ class library,
it is distributed with a superset tcl/tk interpreter that includes most
of the VTK system accessible from tcl.
I have used VTK for developing image processing techniques used in
high-throughput experimentation apps based on Attentuated Total
Reflectance infrared imaging. The nasty, high performance bits for
image acquisition were done in C++, and the imaging, analysis and GUI
were done using VTK shell for tcl/tk. Turned out quite neat....you
can refer to our VTK page
for a bit more info on VTK and a little tcl tutorial on same....
Demonstrations
Back to Tesseract links