I used to fix some bugs in Tcl/Tk program a long time ago and it was the opposite of "fun".
But frankly it was about 10 years ago (and the program in question was ancient even back then) and I don't really remember much, and if it was a fault of Tcl, Tk, or the actual program.
Tcl has this interesting property. It's closer to Lisp in spirit and shell in syntax, but it also looks superficially like C, being actually nothing like it. People who try to program in it as if it were C usually fail and start hating it, whereas people who understand its essence start liking it.
Unfortunately, people often encounter Tcl in situations where there's nobody to explain it to them, so they learn it the wrong way.
To paraphrase the moderator of comp.compilers from many years ago, everything is easier if you always keep in mind that TCL is a string substitution language.