The Tcl Programming Language is a comprehensive guide to the current version (8.6) of this immensely flexible and versatilelanguage. Starting with the basic features, it expands its scope toinclude the more advanced concepts, facilities and programming idiomsfrom which the language derives its power. The breadth of coverage and numerous examples will familiarizenewcomers to every aspect of Tcl programming. At the same time, thedepth and level of detail, and an exhaustive index, make The TclProgramming Language a valuable reference in every Tcl programmer's library.
Four and three-quarters stars rounded up to five (and it would probably be five if I was more likely to actually use Tcl in my job). This is a big, thick, square book. I started reading it in preparation for a SQLite class that recommended "some knowledge of Tcl". For that purpose it was massive overkill. Like dropping a nuke on a single bunny level of overkill.
I had read maybe a fourth of this book by the time the class came around. I have now read all of it, from cover-to-cover. Why did I do that? Not because I expect to use Tcl professionally -- because I don't (although, life is uncertain). No, I kept reading because I found myself enjoying reading about Tcl's features and the way this book laid them out. Once you got past the basic syntax, it was almost like a an applied computer science refresher course, with Tcl as the source of examples. Concepts including: call stacks, lists, exceptions, namespaces, file systems, metaprogramming, coroutines, multithreading, code packaging, object systems, tracing, event-driven programming, asynchronous I/O, unit testing and more. It was all rather surprisingly enjoyable. And if I ever do find a need to be programming in Tcl, you can be sure this book will be on my desk the first month, and in the nearby bookcase thereafter.