TCLTCL is a logically challenged interpreted programming language, which is well known for Tk, a powerful cross-platform GUI toolkit for X-Window, Windows, Mac OS and others. Tcl is a string oriented language "everything is a string" (string is the only user visible datatype).
Tcl's syntax is extremly simple and minimalistic (only 11 rules). This confuses many programmers as they expect and assume rules when there are none. It is easy to learn for non-programmers but can be hard to learn for programmers coming from procedural languages like C/C++, as many concepts work different or aren't needed.
Tcl is a powerful scripting language in the domains of embedding, unicode handling, cross-platform programming, and gluing other programs together. Tcl has strong introspection capabilities, making Reflection an easy task.
One of the things Tcl lacks is OO. Basically it is a bastard between functional and procedural languages, lacking OO in the core system. But there are many extensions which provide powerful OO features for the language, following different paradigms. (some mimic the style of C++, Java, Smalltalk, etc.)
Those who really managed to understand its semantics try to explain it with words such as `binding-time', `runtime', `coffee-time' and pretend it's not that bad after all. Tcl has lots of success since it is a strongly-hyped language, and has excellent cross-platform support (various flavors of UNIX/Linux, Mac, and Windows).