Wow, a blast from the past. I still have some expect tools I wrote long ago that I use and maintain to this day. Not so much new stuff since scripting languages have gotten better at doing what expect does -- often calling their modules "expect" and using the exact same syntax.
I once wrote a webserver in Expect. No, it's not a good language for writing a webserver.
Tcl is a perfectly fine language for writing web servers with, actually. It was possible to do a nice, lightweight, evented web server years before Node.js showed up. AOLserver is also done with Tcl, and for a while in the 90ies, was one of the best systems for doing dynamic web sites.
When you say it was one of the best systems for doing dynamic websites, would you use it on its own, or was it more popular to use OpenACS on top of it? (Which is what one of the codebases I still work on today does)
My understanding was that AOLserver was the NCSA (pre-Apache httpd) server, with TCL as an extension language, not that AOLserver was written in TCL. Weird.
Pairing with C is the whole point of Tcl; in its heyday, Tcl was known for having one of the easiest extension APIs of all the scripting languages. The idea of using a scripting language to knit C code together was one of Ousterhout's key goals.
Also: no other scripting language with the possible exception of JS has evented I/O so fundamentally baked into the core of the language.
Tcl shows up in all sorts of places, like Cisco IOS, or haptic feedback robotic surgery interfaces, or IRC bots. It's fast, it's small, it's robust, it's powerful. It's just not sexy.
I once wrote a webserver in Expect. No, it's not a good language for writing a webserver.