
Topics in Tcl Programming - michaelsbradley
http://www.magicsplat.com/articles/index.html
======
michaelsbradley
I started with Don Libes' classic book on Tcl/Expect[1] and am moving on to
the 3rd edition of Clif Flynt's book[2].

Someone in #tcl on Freenode suggested that this set of essays would be a good
resource for exploring some of the new/er features in Tcl.

I'm experimenting with using Tcl as a basis for rapid prototyping and
testing[4] of services and service compositions built with docker and docker-
compose[5].

It would be awesome if O'Reilly would consider making _Exploring Expect_ [1]
an Open Book[3] – it's an _" oldie but goodie"_!

[1]
[http://shop.oreilly.com/product/9781565920903.do](http://shop.oreilly.com/product/9781565920903.do)

[2]
[http://shop.oreilly.com/product/9780123847171.do](http://shop.oreilly.com/product/9780123847171.do)

[3] [http://www.oreilly.com/openbook/](http://www.oreilly.com/openbook/)

[4] [http://caiusproject.com/](http://caiusproject.com/)

[5] [https://github.com/docker/compose](https://github.com/docker/compose)

~~~
jrk_
I'd like to add Welch's Practical Programming in Tcl and Tk [1]. I used it for
learning TCL for an internship and it was not a bad experience for an
undergrad.

[1] [http://www.beedub.com/book/](http://www.beedub.com/book/)

------
bitwize
Wow, people still develop with Tcl? That's not me being an ass; I'm genuinely
surprised and delighted. Tcl is an old-school way of getting things done; it's
not sexy like Ruby or Node. But its time to functional program is refreshingly
low.

~~~
michaelsbradley
I'm new to Tcl myself, though I've seen it mentioned here and there for many
years. It seems that, like Perl, the language and its ecosystem have continued
to evolve while many folks' impressions of it are linked to an earlier stage
of development.

To be more precise, consider the face of Perl that's presented by the _Modern
Perl_ book[1]. It's quite elegant, really, and that "way of Perl" has been
around for more than several years, but many negative impressions of the
language come from the "line noise" days of earlier perls, both by way of lore
and legacy code that is still in production.

Tcl 8.6.3, the current release, has a wealth of great features[2] including
tail calls, coroutines, lambda functions, and a robust core object system. I
imagine that relatively few former Tcl pogrammers, who moved on to other
technologies over the last decade, are aware of those developments.

[1]
[http://onyxneon.com/books/modern_perl/](http://onyxneon.com/books/modern_perl/)

[2]
[http://www.tcl.tk/software/tcltk/8.6.html](http://www.tcl.tk/software/tcltk/8.6.html)

~~~
Zuider
Whoa! Adtivestate's license for the community edition is quite restrictive:

Dev and test machines (non-production) only

[http://www.activestate.com/languages/compare-
editions](http://www.activestate.com/languages/compare-editions)

I am glad to see that there are other binary distributions available for a
wide variety of OSs, including Android:

[http://wiki.tcl.tk/668](http://wiki.tcl.tk/668)

~~~
hga
If I remember correctly, ActiveState has been in business for _two decades_ ,
their news goes back to 1998, and I remember using their Perl for Windows in
1998, so they seem to be doing something right.

What I remember from back in the '90s was that you paid them for polish,
support and running well on alien systems like Windows. When I first used
them, it was in a "Windows Shop" (well, I was the 2nd programmer :-), and
their Perl was a trivial to get running version which then allowed me to show
what such a language could do for the right tasks, e.g. an IIS backend page in
it instead of Javascript or VB, or quickly importing a database of Nielson
advertising categories for a contract with them.

~~~
Zuider
I have the greatest respect and regard for ActiveState, and I am grateful for
their community editions. I believe that they were pioneers in this at a time
when one either had to spend a lot of money, or go through the headache of
compiling your own distribution if you wanted to use a half-way decent
language on Windows, even just to learn.

It makes good sense to buy a license if one is going to use one of their
products commercially because the value that they add is well worth the price.

I just hadn't realized that I would be contravening the license agreement if I
had used one of their community editions to make money.

------
kalekold
Tcl is awesome for building cross-platform GUI's when used with Tk. Python's
Tkinter and Dlang's Tkd are simple wrappers to provide GUI toolkits for those
languages too.

------
biomimic
Tcl is perfect for rapid application development and proof of concept
algorithm innovations. Used it to develop search engines, pattern matchers and
other analytics related to text mining and knowledge discovery. The R&D100
award was won with it too in addition to the development of a few machine
learning methods with Michael I. Jordan and David Blei: "Statistical modeling
of biomedical corpora: mining the Caenorhabditis Genetic Center Bibliography
for genes related to life span" \- Blei DM1, Franks K, Jordan MI, Mian IS. -
[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1533868](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1533868)
\- . [http://newscenter.lbl.gov/news-
releases/2008/07/09/berkeley-...](http://newscenter.lbl.gov/news-
releases/2008/07/09/berkeley-lab-wins-four-2008-rd-100-awards/) Hey,
everything's a string!

------
alexwestin
There's really not a thing I can't do in TcL. I move back and forth from
Python and TcL all of the time. I had Tcl before I had Python and it's quite
mature which makes sense considering how long it's been around.

