Tcl was designed from the outset as a flexible language with a small core, that could be adapted in ways the original authors couldn't have foreseen. Indeed, thanks to this flexibility, Tcl is used in everything from Tivo set top boxes, to AOL's web servers, to the NBC television network's control center (see the Audience page). This flexibility is reflected in the wide array of useful fields the language is employed in, and even more so in the new and unique applications that are based on Tcl!
Tcl truly is a general purpose language. This page describes just a few of the many, many areas where people use it.
Tcl, being a dynamic, string oriented language, is a great match for web applications. Rather than taking a one-size-fits-all approach, a number of different solutions have evolved:
Desktop GUI Applications
Tk helped establish Tcl's popularity as the only sane way to write GUI applications under Unix and X11. People found Tcl's dynamic approach a natural fit for GUI's, making GUI development much easier and faster than with lower-level C and C++ oriented toolkits.
Tk is still the leader when it comes to delivering a high level GUI toolkit that naturally fits in with dynamic languages, and those benefits are shared by developers working on Unix, Windows and Mac OS X.
Testing and Automation
Long before "test-driven development" had become a buzzword, Tcl had been well established as a testing powerhouse, leveraging its ability to easily interface with other software and hardware.
Tcl itself comes with the "tcltest" framework (among other things, used to test Tcl itself). DejaGnu is a hugely popular testing framework (for gcc, for example), based on Tcl and Don Libes' Expect (the first Tcl extension, used for automating interactive applications). Companies like Oracle, Sybase and Cisco have millions of lines of Tcl testing code on which they rely to assure the operation of their flagship products.
Tcl has extensions available to use all the standard databases, whether MySQL, Oracle, Sybase, PostgreSQL, Berkeley DB, ODBC-compliant databases, and many more. There are also several "wrapper" packages, which provide a common interface to several different databases.
Tcl also has strong support for embedded databases, which are ideal for deploying seamlessly as part of applications. The two open source leaders, SQLite and Metakit, both share Tcl as their preferred scripting interface, and both of the primary authors are very active in the Tcl community.
Because Tcl is a very compact language, and is easily integrated with special hardware, it is a popular choice for embedded development. You'll find Tcl hidden away on many devices, including many networking products from Cisco and others, and set-top boxes including Tivo. Embedding Tcl within other software projects is of course also hugely popular, and has become the dominant control language in some industries, such as in electronic design automation (EDA) and computer-aided design (CAD) applications.