The Tcl scripting language grew out of my work on design tools for integrated circuits at the University of California at Berkeley in the early 1980’s. My students and I had written several interactive tools for IC design, such as Magic and Crystal. Each tool needed to have a command language (in those days people tended to invoke tools by typing commands; graphical user interfaces weren’t yet in widespread use). However, our primary interest was in the tools, not their command languages. Thus we didn’t invest much effort in the command languages and the languages ended up being weak and quirky. Furthermore, the language for one tool couldn’t be carried over to the next, so each tool ended up with a different bad command language. After a while this became rather embarrassing.