I'm a little dumbfounded by the negativity and misinformation presented against Tcl here.
|Just another dynamic OOP language. not very popular, even though it has been around since 1988, I wouldn't count on many libraries made for it.|
Tcl is the
dynamic language, but it isn't OOP. (You can write OOP with it, though, and the most recent versions even provide a built-in OOP subsystem, instead of just using one of the many
OOP libraries other people have written, like [incr Tcl].
Beyond that, the language was designed
to work with libraries. Just about everything you do with it is based upon having libraries.
|It's an absolute mess, not well-known, has poor availability, and anything of size is a maintenance nightmare.|
None of that is true. I think it reflects your experience with it over its actual merits.
The fact is that Tcl is fairly unique among language paradigms, and if you try to use it as if it were, say, C or Perl or something else, you will find it very difficult. Tcl simply does not work like those languages.
Tcl is well-known in the industry for its elegant design and clean code. (That does not mean that everyone likes it. Even some very vocal big guys don't like it, such as rms
. I think his arguments are bigger than his head, personally, but alas, I'm not a big guy so no one cares.. ;-)
Tk is so friendly and easy to use that many modern systems today still use it or try to implement something similar in their language interface.
As for availability, chances are that if you have a working C compiler you can compile some version of Tcl. (Modern versions don't tend to support legacy systems, but some, like Jim
do support some rather exotic hardware.)
Since the Tcl core is comparatively small
, Tcl is often found on embedded devices where other systems simply wouldn't fit.
"Anything of size" is a maintenance nightmare no matter what language you use. If you begin a large project with what you believe to be a toy language, I think your large project is doomed to fail. PEBKAC.
But again, if you are using Tcl to create some monolithic application, you misunderstand the design principles and purposes of Tcl.
|I would avoid it and invest in learning something more practical.|
Disagree. More practical than what? Tcl is used everywhere
-- and usually in places you wouldn't even think to look. Your lack of knowledge about it isn't shocking, but only your statement to the contrary.
If you've ever gone to the hospital, Tcl has probably saved your life.
If you've ever use a phone, you've used Tcl.
If you've ever gone banking, you've used Tcl.
If you've ever driven a car, you've used Tcl.
/list grows here...
(Who Uses Tcl)
(Uses for Tcl/Tk)
Tcl is used for more stuff than fib(n) people can shake a stick at.
|What problem space are you targeting?|
Best quote yet. (Because it is actually good and true.)
Tcl might not be best for your needs.
Tcl does have its share of problems, mostly due to age and poor marketing.
I have had to deal with limitations in the language myself. No one can claim it is perfect, but it really is a good language to have under your belt.
Have fun with it, and make sure to play around at the Wiki. :O)