Updated 2013-10-16 06:58:49 by pooryorick

Purpose: let Tcl'ers tell why they like Tcl ...

Brian Kernighan (Co-author of The C Programming Language; AT&T Bell Laboratories: "Tcl/Tk is wonderfully productive; in a few hours one can accomplish what might well take days or even weeks with C-based tools. The package is extremely robust, very well documented, and has an active and cooperative group of users. The source code is freely available and of exceptionally high quality. It is clearly possible to build production-quality user interfaces with Tcl/Tk, and to do so far faster than with competing tools." (from: 1995 Tcl/Tk Proceedings)

Gordon Johnstone wrote in comp.lang.tcl:

For me, I was a VB/ Delphi programmer that needed to do some Unix GUI stuff. I was recommended tcl but was reluctant to learn it as I only had six weeks to deliver the project (The 6 week time scale was based on VB development times). Anyway, I tried it, and thanks to the help of this newsgroup, finished the project in a morning ( + 2 days learning ). 2 more days of tweaks the customer decided they couldn't live without, and the project was in place.That project is in daily use three years on.

Then I got a 6 month, 2 man project on a mix of Solaris, Linux and Windows NT4 ( which was a very optimistic time scale ). This was delivered in just under three months with one man (me), with lots of bells and whistles that the customer wasn't expecting. This system was geared to pass and process data at the rate of about 20 megs a day, but the spec changed just after delivery and now handles around 2.5 gigs a day without modification. It will shortly be upped to around 20 gigs a day and still doesn't require modification.

For three years now I have received the high pay increases in our organization, and have been sent to the States (I'm in the UK) around twice a year to do tcl work and to attend the conferences, as rewards for the continuous smashing of time scales.

With regards to support, when I've had questions about Expect, Don Libes ( the author ) has always answered on the newsgroup, usually same day. Jeff Hobbs has given huge amounts of support with vanilla tcl and TkTable, and the whole community has given me endless support and friendship. When I was a VB programmer, Bill Gates never e-mailed me once ;0). Check out the perl and c newsgroups for the contrast. Yes, tcl gets a lot of loyalty, but that's because it really deserves it, its well thought out, and very well supported. For me, the greatest thing about it is the community.

Peter Lewerin wrote in comp.lang.tcl:

I used to write programs for a living; now I teach programming for a living. This means I spend a lot of time thinking about why the programming language X is designed the way it is, and what it would be like (worse? better?) if different choices had been made. (Kids are usually suspicious about rules, and I need to have answers to their criticisms.)

As a part of that process, I usually write down notes for a ``counter-X'' (such as a counter-C, counter-Lisp, counter-Tcl). I write code in that imaginary language, using syntax and constructions that could have been in X but aren't. This is almost always enlightening. My counter-ideas gradually collect into three buckets:

  1. ideas that are less sensible/useful than the existing solutions.
  2. ideas that are about as sensible/useful than the existing solutions, but the development history of the language explains why they weren't thought of or adopted.
  3. ideas that (at least IMHO :-) ) are more sensible/useful than the existing solutions, and there are no really good explanations for why they weren't thought of or adopted.

I'm still playing around with counter-Tcl, but so far I have to say that Tcl seems extraordinarily sensible. The `1' bucket keeps filling up all the time :-) . Partly this seems to be because it doesn't try to be too clever in itself. The language part of Tcl is a very, very simple yet well-equipped tool to do clever things with.

I don't know if this is helpful to you. Anyway, after 20 years of programming and experience with over a dozen language (not counting dialects or languages that I've only tried for a short time) my comparative verdict on Tcl is impressive and pleasant.

Steve Blinkhorn posted in comp.lang.tcl, "I also concur with the notion that Tcl is a good first language: I have staff who have produced very nice code within days of starting to use it."

Mark Harris on comp.lang.tcl:

My simplistic viewpoint on Tcl is that it functions, it is rock solid, and it is available. It is a tool... and as such, it is still applicable to solve the problems it was designed to handle from inception to maturation. It is alive and well.

The only other product (in my opinion) on par with Tcl/Tk is ObjectRexx; although I feel that Tcl is more elegant, and ObjectRexx is not quite as portable. I use both of them professionally for in-house glue language, casual scripting, quick interface prototyping, and even full applications.

The real beauty (for me) of Tcl/Tk is that simple elegant constructs (very few lines of code) produce an interface with a professional look and feel. Its ease and flexibility as a *glue* language, and its speed of execution place it very highly in the Alive & Well category.

Is it the only screw driver in my box ? No. Is it alive and kicking? In my shop it is.


I finally got people to notice around here by placing some "gui templates" out on the network that folks could play with. When our folks realized that they could build a useful gui dialog with menu dropdowns, buttons, entry fields, and help text in a single file with less than 120 lines of code they became interested; particularly, when I showed them that the app ran (unchanged) on every version of windows and three different *nix systems. ... and fast !

I fell in love with package manager. With every other gui builder I have ever used the programmer has to go through hoops to have things look great (expand collapse) when I dialog is resized. My folks (especially the ones that are not used to the window manager concept in *nix) were particularly impressed with the pack command. With Tcl/Tk I don't need to configure and align my widgets... just pack them and let the manager handle it for me.... as it should be. yessssss.

Rael tells a success story of his experience with Tk in [1].

On Tue, 2 Apr 2002, Jeff Godfrey noted on comp.lang.tcl:

Hi All,

I just wanted to give a public "pat on the back" to Kevin Kenny and the tcl community at large. Recently, I was having a problem with timer resolution under Windows running both 8.3 and 8.4. It was supposed to have been fixed in 8.4, but I wasn't seeing the improvements while running Windows 98.

Kevin got involved and sent me a test (tcl) program to run on my system to verify my findings. I sent the results back to him and he quickly created a small C program he thought would verify real the problem. He posted the program to c.l.t and asked if someone with a Win98 system could test it and give him the results.

Rolf Ade jumped in, quickly tested the code, and returned the results to Kevin. Very soon after, Kevin committed a tcl patch to SourceForge to correct the real problem, and sent me an email informing me of the change.

He asked if I could try the latest changes on my system to verify the fix. Unfortunately, I don't have compiler software on my Windows system, so I informed Kevin of my dilemma. His response was "No problem, what do you need? I can build it". A few hours later I had a new "tcl84.dll" in my inbox ready to be tested.

Well, I got home tonight, tested out the changes, and guess what? No more timer resolution problem! Sweeeeeet.

No matter what you hear, you *can't* buy this kind of service, and dedication, and willingness to help - anywhere, for any price. This is what tcl and the tcl community are all about and I'm proud to be a (very small) part of it.



From a correspondent: "I've gotten myself a little consulting job. So far I've been writing parsers in Tcl. It is too easy. Tcl makes me so efficient that I'm hardly charging any time at all. (They've been sending me these HUGE files generated off a mainframe and they need bits of information out of these files condensed and summarized in a file. Tcl is perfect for that). If I was using perl I'd be making more money. :-)"

Tony Summerfelt, by way of c.l.t: "if i need a program that does any kind of heavy duty date manipulation i use tcl. the clock command is easily my favorite in tcl.

and, of course if i need any type of program requiring a gui, there's no quicker way to crank out one than in tcl/tk."

RS: "Tcl is a great wheel reinvention tool - you're done before others have even read the docu for the existing wheels" ;-) [Relate to "scripting mentality" references.]

Larry Smith wrote in comp.lang.tcl on 2002-09-23: "Tcl is powerful, expressive, robust, and well-tested, making it ideal for large, enterprise-class applications, as the above show. It also has a simple syntax, is highly orthogonal and therefore easy to remember without hitting a manual, making it ideal for casual coding of apps by people with not a lot of experience with coding. And lastly, it's got a lot of cool extensions making it ideal for the typical programmer trying to get a job done. Aside from the foregoing, it's not especially well suited to much."

One of my absolute most favorite things about Tcl is that you can become an expert by merely studying and understanding a single page of documentation.

I still marvel at that fact. (Bryan Oakley, in comp.lang.tcl 2002-11-13)

I've gotten contracts because I bid the Tcl solution in man-hours, while the competition bid a Java solution in man-months. ... And I met my initial time estimates. It wasn't a bid-too-low-then-jack-the-price contract. The hardest part was convincing the client that I did know what I was talking about and could deliver. (Clif Flynt in the Tcl chatroom, 2002-11-19)

Life is too short for syntax

Peter Lewerin C is a fantastically successful language; widely used, efficient, programmer-oriented. It must be my favorite programming language. Well, it is crufty, quirky, and old-fashioned. Not like ML. Now that's a good, strong, and state-of-the-art language design. Type safety, functional paradigm, sparse syntax. It's surely my favorite programming language. Except Lisp is more hackable and has even less syntax. My favorite programming language is definitely Lisp. Yes. Um, then how come I always use Tcl?

FW: Because Tcl has even less syntax, is even more hackable, and has no need for type safety! <g>

Jim Garrison I find Tcl to be wonderful such that, when I need to access Java, there is TclBlend. When I need to do 3D, I have VTK, Togl, VRS3D...Even CAD I know I can use the OpenCascade...From simple console apps to full blown GUI apps, everything I need is within my reach using Tcl... Gluing different tools together is really simplified by using Tcl...If I need to control something or need speed, I can write it in 'C' and create the necessary Tcl commands...I have yet to find any other language as easy and simple to use and I have looked at most of them and even tried them out, but still go back to Tcl...

I initially considered Tcl a prototyping language, and although it certainly does enable easy prototyping, it is also stable, reliable, and efficient enough to serve in production roles. In several cases, I have started applications, planning to eventually re-write the code in a real language when they outgrew Tcl/Tk. In practice, the applications in Tcl just worked, and never had to be rewritten. Using Tcl/Tk, I have been able to develop fully-functional GUI applications for MS Windows without ever having to mess with Win32 or any Microsoft APIs. (David Beckemeyer 2003-10-25)

See also [VisualBasic]