One of aspect
's favourite things about Tcl, that he cites to anyone who will listen, is that it Plays Well With Others
. This shouldn't be a surprise given JO
's original vision for the system as a "Glue language", but how well Tcl succeeds in this respect is really quite a marvel.Inventory of IPC methods
lists some of the ways. Unicode
support is still impressive. On Windows there are things like CAWT
is the granddaddy of playing well with others, and still incredibly widely used. Accessing native libraries with critcl
is almost too easy.
Because everything is a string
, conversing with another process is trivial: do as much parsing as you need and no more. Contrast the approach in Lisp
or even Python
where external data needs to be brought into the native world-view ([
, or JSON
) to conveniently consume.
For consideration: in how many languages could you consider the below a relatively simple program, requiring only hundreds of lines of code for each feature?
- presents a simple GUI with some desktop interaction
- manages a Serial port
- listens for syslog messages
- manages a couple of external processes
And then what if you needed to add:
- wraps a native library
- provides a simple scripting interface to the user
- builds and runs as a portable app on multiple platforms