That's I, Ivan Shmakov.
I'd like to use
Tcl for the following.
Rapid prototyping edit
Sometimes, you have a charming idea and need to check whether it works before you've become completely disappointed in it. There,
Tcl allows you to rapidly develop the code to prove its usefulness.
However, after the idea is proven to be worthwhile, the code is usually to be rewritten in some compiled language (e. g.
C) for the sake of efficiency. At that point, it would be good to leave the interface untouched. It's the point to make the interface
consistent with the rest of the system from the very beginning. That's why I've written
gnuerr and an Argp-like command-line parser (yet to be posted.)
Having uniform user interface is also good for the user -- does anyone really want to learn a different
CLI for each of the tools one use?
Tool Control Language edit
While you develop a tool to perform some number-crunching, processing tens and hundreds of megabytes of data per run, a compiled language usually couldn't be jumped over if the speed matters. However, a complex application usually requires a complex mean of control. There,
Tcl is the language which is ready to be linked with your application.
Scripting language edit
Most of the time, I use Bash for doing every day small tasks. When I feel being too constrained with it, I switch to
Tcl. Also,
Tcl is my language of choice when I need to build a simple user interface around some library, such as DjVuLibre [
1], or Mapx [
2]. (In fact, I've written bindings for both, and even a simple
.djvu-viewer in
Tcl; yet to be published for the wide audience.)
To perform some tasks with my mail and news archives, I've written some scripts, based on the
rfc822::headers package presented in
Reading and parsing RFC 822 headers. The package could be used to inspect Debian
status or
Package files as well.
There's the
rfc1036::parse package as well, providing better support for the news article headers. It could be found on the
Parsing RFC 1036 headers page.
Mostly, I'm using
Tcl without
Tk (i. e. to write
CLI applications, not
GUI). One of my Tk applications is
A Simple Shot 'em Up in Tcl/Tk.
string map {
" at " @ " dot " .
a b b c c d d e e f f g g h h i i j j k k l l m m n
n o o p p q q r r s s t t u u v v w w x x y y z z a
} "huzm at sgdnqx dot zrt dot qt"