1S

That's I, Ivan Shmakov.

I'd like to use Tcl for the following.

Rapid prototyping

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

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

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 [2 ], or Mapx [1 ]. (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"