TCL is really a powerfull language. Very simple once you have understood that it just plays with strings and lists.
But when it comes to Object Oriented pardigms, it is definively ugly. Of course, it is not made for such a treatment. But who said I had the choice ?
What I like very much with OO languages, is that you can read well written code as if you were reading english, if you choose carefully your names, you quickly understand what's going on. Appending something to a list in OO is as simple as mylist.append(obj). In tcl, lappend mylist $obj (note the absence of $ on the list, you pass the list name in parameter, and not it contents). Quite similar, but the order is different. The first word you read in OO is the modified object, in tcl the first word is the action.
Oh well. This post just to say I prefer to read code written in a OO language.