Version 13 of Tcl Tutorial Discussions

Updated 2001-12-05 10:56:35

NOTE: If you see this, you're too close! Or the page is being edited by someone who types slowly. Give hime a few minutes and come back

I'd like to take on the task of sorting through as many good Tcl Tutorials as we can find, and building clear way for someone who is not currently a Tcl'r to join us and find the information geared to their level of programming skill. It should be presented in a communicative, nurturing atmosphere that brings both the joy of Tcl and the fun of the community.

5 Dec 01 Below I've pulled some questions and responses together. My thanks to the folks who answered! The things that seem pertinent are:


Here is the survey part

To that end I have some questions for the existing Tcl community. Please e-mail your responses to me directly ( leam at reuel dot net ), I'll collate them and bring back whatever trends and thoughts seem to surface. Also, if you have a question you feel pertinent, please add it!

Please note that references to "Tcl" include the core language and its extensions.

What drew you to Tcl?

Curiosity.. used to do Fortran and C before. But after some Tk demo programs I felt I had to look deeper into this.

...

  The power of an interpreted GUI, the Tk canvas in its extendability,

the simplicity of the language, the joy of reading the Tcl/Tk source code.

...

I've been a computer language geek for years. I love to learn about different programming languages. But what really drew me to Tcl was the prospect of writing cross-platform applications -particularly GUI apps. I use Macs at home, and the idea that I might be able to write apps on Unix that i might also use at home on the Mac was/is appealing. ...

I first learned about Tcl when I saw John Ousterhout's paper announcing it at the 1990 Winter USENIX Conference.

   ftp://tcl.activestate.com/pub/tcl/doc/tclUsenix90.ps

At the time, I didn't really understand the implications of an embeddable shell, and the proceedings gathered dust on my shelf. Later, in the Fall of 1991, I needed to do some quick-n-dirty GUI work, and a colleague lent me a copy of John's paper on Tk from the 1991 Winter USENIX conference:

    ftp://tcl.activestate.com/pub/tcl/doc/tkUsenix91.ps

Since all I needed at the time was some rapid prototyping of some simple GUIs in a throwaway app, Tk looked like a good candidate, and I installed Tk 1.4 and whipped up my GUIs. One thing led to another, and within a few weeks I'd done quite an elaborate set of shell scripts and graphical prompts orchestrating a group of engineering application programs -- all, so far, without writing a line of C. John invited me to participate in a panel discussion of Tk users at the 1992 X Technical Conference, entirely without realizing that I'd been a user for less than two months!

With use of Tk as a graphical shell under my belt, I tried my hand at a little bit of application embedding, making what actually turned out to be an interesting little system of embedded application content, with hyperlinks joining Xess spreadsheets, FrameMaker documents, Tk GUIs and legacy engineering codes. The idea was to create "electronic design notebooks" to hold all the computer artifacts of an engineering design. Mind you, this was before the Web revolution! I submitted a position paper on this work at the first Tcl/Tk Workshop:

    http://titania.crd.ge.com/papers/gecrd/mtl/mdip/tcl93.ps

The program committee didn't see much in the work, but after the conference, it became something of an epiphany for John; it catalyzed his thinkingso that he started seeing Tcl as not only a shell but also an integration platform:

    http://tcl.activestate.com//doc/integration.html

(By the way, he credits me in the "Acknowledgments" section of his Tcl/Tk book as "showing that Tcl can be used to interface to almost any conceivable application.)

At this point, I still saw Tcl as primarily a prototyping vehicle. It wasn't until several years along the road that I realized that my prototypes were achieving production quality, and now I have some that run 24/7 in a mission critical environment:

http://www.usenix.org/publications/library/proceedings/tcl98/angelovich.html

What keeps you with Tcl?

It's not the ideal language, but the best I've ever seen, regarding ease of use, user empowerment, rapidity of turnaround. And: the community, a small but powerful worldwide group, good for discussions and new ideas. I checked comp.lang.c and .python for a while, but just the tone wasn't exactly the same there. And the Wiki, allows me to make all my Tcl fun projects public and open for discussion...

...

    See above, plus the friendly community.

...

Time invested. I've invested a lot of personal time, energy, and ego into the community. At times, I feel like giving up and moving on. But then, I look at other languages of similar ilk, realize how bad they are, and see that Tcl isn't as bad as I thought...

...

Tcl remains a superb integration platform. It can connect easily with code in other languages, in particular both C/C++ and Java. It also hooks up readily with components in the environment ranging from shell scripts all the way to COM, CORBA, and ODBC. Its notifier is also readily extensible, allowing scripts to respond to a wide variety of external events. The language is also simple in concept: its typeless "everything is a string" architecture is deceptively powerful.

Tcl also has a vibrant and friendly community. The amount of free support that I get from the Tcl'ers never ceases to amaze me.

Describe your current level of skill and amount of experience, both with Tcl and other programming languages.

When you first started with Tcl, what did you think best about it? What made you think, "Oi, that's weird!"?

What resources did you use to learn Tcl? What resources have you used to learn other languages?

What things draw you to learn another programming language?

What resources do you currently use to stay current with Tcl?

I'll post updates and notes here as they come in.