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 has been used in everything from Cisco routers and 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.
Thanks to its strong string manipulation and networking capabilities, Tcl is a great match for web applications. Available software runs the gamut from client side libraries and utilities, web servers ranging from skinny embeddable libraries to full blown enterprise class servers like AOLServer, to a variety of application frameworks.
Desktop GUI Applications
In the early years, 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.
In modern times, Tk is still the leader when it comes to delivering a high level GUI cross-platform toolkit that naturally fits in with dynamic languages. Furthermore, theming support added in Tk 8.5 enables a native look on Unix, Windows and Mac OS X platforms.
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 provides a common interface to SQL databases through the Tcl Database Connectivity (TDBC) interface. Drivers for SQLite, MySQL, PostgreSQL and any ODBC-compliant databases are included with the core distribution. Third party extensions offer support for other databases as well. In addition, custom database-specific packages are also available for many of the above as well as other popular databases such as Oracle.
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.
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.