What is Tcl Tk?
Tcl is the short form for ‘Tool Command Language’ and Tcl Tk is the term used for referring to the toolkit available for this programming language. There are hundreds of thousands of software developers who’re actively and productively using the Tcl programming language, and its graphical user interface toolkit (Tk) today.

Despite the fact that the Tool Command Language is extremely powerful and capable, it’s an easy-to-learn dynamic programming language. It caters to a large number of users, including the ones involved in development of desktop and web-based applications, software testing, system administration, networking and much more. It’s business- friendly and its open source nature makes Tcl a mature and evolving programming language that is highly extensible, truly cross-platform, and easily deployable.

Talking about the Tk now, it’s a graphical user interface toolkit which takes the development of desktop applications to an altogether different high, especially when compared to the traditional approaches. It’s the standard GUI (Graphical User Interface) not just meant for the Tool Command Language, but for various other dynamic languages too. It has the ability to produce native and rich applications which can run without any alterations across different platforms like Linux, Mac OS X, Windows and more.

In what all ways you can effectively use Tcl Tk?
The reason why Tcl was created in the first place was to serve as a flexible programming language having a small core, which could be easily adapted in all sorts of ways, something which may have been unforeseen by the original authors. Hence, all thanks to its’ such flexibility, developers can use Tcl for everything ranging from the TiVo set top boxes to its utilization in AOL’s (America Online’s) web servers. What more, you can even see its usage in the control center of the NBC television network. This flexibility of Tcl also gets reflected in the wide range of fields that the language gets implemented in, not to forget the unique and new Tcl-based applications that keep popping up every now and then.

It’d be an understatement to say that Tcl is an amazingly simple general-purpose programming language. Following are some of the many different areas that developers are actively using Tcl in:

In Desktop graphic user interface (GUI) applications
Tcl’s GUI toolkit played a key role in establishing Tcl as the only feasible method of writing graphic user interface applications under the X11 and Unix environments. Developers discovered that the dynamic approach adopted by Tcl was a natural fit for the GUIs, making their development quicker and easier than what was possible with C++ based and lower-level C based toolkits. It cannot be denied that Tk is still considered the market leader when it’s about delivery of a high-level GUI toolkit which naturally adapts to different dynamic languages, and all these benefits are equally shared by developers coding in Mac OS X, Windows and UNIX environments.

In Web based applications
As Tcl is a string oriented and dynamic programming language, it serves as an excellent match for the creation of web-based applications. Rather than adopting a one size fits all type of development approach, it provides for a good number of distinct development solutions such as:
– TclHttpd serves as a highly programmable and high performance web server which is designed for running either standalone applications or for embedding into other applications. It is written entirely in Tcl.
– Powered by Tcl, AOL server that runs some of the largest AOL websites, serves as the ideal platform for creation of massively scalable and heavily database-driven websites. It is usually paired with the OpenACS community system.
– The usage of Tcl also comes in the form of a traditional web programming language. It provides a good number of CGI libraries, including the ncgi, which is an integral part of the Tcllib. Rivet is another useful alternative that runs in the form of an Apache module.

For testing and automation purposes
Long before the test-driven development became the buzzword of software development industry, Tcl had gained good ground in the form of a testing powerhouse, by leveraging its ability of easily interfacing with the other hardware and software.

On its own, the language comes equipped with the ‘Tcltest’ framework (which apart from other things is utilized for testing Tcl itself). Another very popular testing framework DejaGnu is based on Tcl; and Expect from Don Libes is the first of its kind extension that is used for automation of interactive applications. Then, big software giants like Cisco, Sybase and Oracle have Tcl testing codes spanning across millions of lines. These companies rely heavily on Tcl for ensuring smooth operation of each one of their flagship products.

In databases
The extensions available in Tcl can be used in all standard databases whether they’re ODBC compliant databases, Oracle, Berkeley DB, PostgreSQL, Sybase, MySQL or others. Developers can also make use of many wrapper packages that serve as common interfaces for various kinds of database environments. Tcl also provides solid support for the embedded databases that are ideal for seamless deployment as a part of applications. Metakit and SQLite, the two powerhouses of open source, share and promote Tcl as their most preferred scripting interface. Both the primary authors are highly active within the Tcl community too.

In the embedded development
As Tcl is a highly compact language, and can also be easily integrated with any special hardware, it becomes the most preferred choice in the field of embedded development. You can find Tcl hidden inside so many different devices, including a large number of networking products that come from the Cisco umbrella and others, including various kinds of set top boxes like Tivo. The embedding of Tcl into other software projects is hugely popular too. What more, it has emerged as the most dominant and most actively used control language in certain industries like the ones to do with CAD (Computer Aided Design) applications and EDA (Electronic Design Automation).

Who all are currently using Tcl Tk and what’s their opinion of it?
Many people often refer to Tcl Tk as the best kept secret of the software industry. Whether it’s the large organizations or the small business entities, academic institutions or the wild open world of open source software, you’d be surprised to see all the different places where Tcl find its implementation in.

Although it is difficult to come up with the accurate figures, the number of Tcl Tk users is very huge. The language is used world over by software developers, right from the one-man shops to research labs, large corporations, universities, government establishments and dark basements (housing inspired open source developers).

Scientists, system administrators, application programmers and elite hackers all use Tcl Tk or an active basis. Students wanting to learn an easy language for their course requirement use Tcl. Developers of various software applications embed Tcl into their programs, enabling users to make easy changes without going into the nitty-gritties of the programming languages or software.

It has been used in programming of the Mars Pathfinder prototype and Hubble space telescope! It runs the Shell oil drilling rig’s operator interface and the NBC network control systems (24 x 7). It lays hidden inside in a large number of Oracle products and almost every TiVo box. Not to forget its day-to-day implementation at prestigious organizations like Raytheon, Nortel, IBM, Motorola, Sybase, Pixar and more.

Simply put, people belonging to the Tcl community are awestruck by the breadth and depth provided by this amazing language!