Tcl is a multifaceted language package. As a programming language, it is high-level, interpreted, and dynamic. The Tk library allows users to build a graphical user interface (GUI) natively in Tcl.
Tcl/Tk supports several programming paradigms, including functional, imperative, objected-oriented, and procedural. Tcl/Tk libraries can be used to embed powerful scripting capabilities into a compiled application, such as C, Java, or Fortran.
The programming language was developed by Dr. John Ousterhout at University of California at Berkeley in 1988. Although the name is derived from Tool Command Language, it is generally written as Tcl rather than as TCL.
An original design goal was to create a language that was small enough to be embedded in other programs, but which could be easily extended with new functionality. It was designed to execute other programs in the manner of a shell scripting language. The core language was to be a solid base for building specialized languages around a common set of core commands and syntax, the idea being that it would be useful for building specialized tools.
However, as programmers created Tcl extensions with support for graphics, database interaction, distributed processing, and so on, they also began writing applications in pure Tcl. Today, Tcl is widely used for in-house packages, as an embedded scripting language in commercial products, as a rapid prototyping language, as a framework for regression testing, and for 24/7 mission-critical applications.
Perhaps the chief strength of Tcl is that the base language remains small while supporting a wide variety of uses that are made possible through extensions. A number of special-purpose extensions have been added to the language, the most common being Tk.
Tk is a toolkit for developing graphical user interface (GUI) applications. It extends the core Tcl facilities with commands for building user interfaces. In many distributions, known as Tcl/Tk, the Tk extension is included as part of the Tcl core. Tile/Tkt is an extension to Tk that gives Tk widgets the look and feel of their native operating system applications.
Other popular extensions of Tcl include Incr Tcl, which adds support for C++ style object-oriented programming, and Expect, which simplifies controlling other applications and devices, and allows complex tasks to be automated. However, with Tcl 8.6, object-oriented support is part of the core language. Other extensions include Itcl/IncrTcl, TcITLS, Tcllib, TclUDP, tDOM, Tix, and Tklib.
Tcl is usually distributed with two interpreters, tclsh and wish, documentation, and support libraries. Tclsh is a text-based interpreter, while wish is a basic interpreter with Tk graphics commands added.
Tcl, or Tcl/Tk is available as free software, and as a commercially supported package. The core language is supported by a worldwide group of volunteers, while commercial support for the language can be purchased from ActiveState, Cygnus, Noumena Corporation, and others. Tcl/Tk runtime packages are included with Linux and FreeBSD packages, and with commercial UNIX distributions, such as HPUX, Solaris, and macOS.
Tcl code should execute unmodified on any system to which the Tcl interpreter has been ported.
The focus of resources listed in this category are those relating to the Tcl programming language, the Tcl/Tk distribution, or any implementations of Tcl, as well as extensions, IDEs, editors, or other tools designed to facilitate Tcl programming. Tcl or Tcl/Tk user groups, forums, tutorials, or guides are also appropriate for this category.
 
 
Recommended Resources
ActiveState is a Canadian software company that develops, sells, and supports cross-platform development tools for dynamic languages, including Tcl. Its Tcl products are ActiveTcl, available as a free Community Edition as well as a commercial Business, Enterprise, or OEM Edition. The free edition may be downloaded from the site, while the commercial edition can be purchased. Documentation and datasheets are also available, and the Tcl/Tk modules included with ActiveTcl are defined.
https://www.activestate.com/products/activetcl/
The Tcl-Apache integration project is highlighted here, the objective is to combine the power of the Apache webserver with the capabilities of the mature and flexible Tcl scripting language. General information about Tcl and its advantages and features are put forth, along with an introduction to the integration process, as well as Apache Rivet, which is intended to extend the Tcl language with new commands aimed at providing a program interface to the web server and other utilities.
https://tcl.apache.org/
Hosted on GitHub, TclSqueak is a graphical, object-oriented, programming environment for the Tcl programming language. Previously the XOTclIDE project, it was renamed because the IDE is not limited to XOTcl, but also supports the new object-oriented extension TclOO, which was introduced to the language core with version 8.6. Its features, documentation, examples, and links to video tutorials are featured.
https://github.com/xdobry/tclsqueak
Tcl (Tool Command Language) is an interpreted language and an interpreter for that language, which is both embeddable and extensible. Available for free under a BSD license, the language package can be downloaded from the site, including extensions. Development notes, bug reports, and release dates are posted to the site. Users may review and rate packages, make feature requests or bug reports, and view mailing lists.
https://sourceforge.net/projects/tcl/
Maintained by volunteers from the Tcl community, the site is hosted at ActiveState, and running TclHttpd, a high-performance, and programmable web server written entirely in Tcl. The site includes an introduction to Tcl/Tk, including its features and benefits, applications, highlights, comparisons, language highlights, support information, and instructional documentation. Operating system platforms that include Tcl/Tk are identified, and binary and source downloads are available.
https://www.tcl-lang.org/
Hosted by SourceForge, the Tcl Programming Language manual is divided into sections and chapters, including an overview of the language, its variables, safe interpreters, library, file name conventions, expressions, and mathematical operators and functions, as well as built-in commands and C procedures. Object-orientation, input/output, operating system interface, and packages and source files are included. Code examples are used within the chapters.
http://tmml.sourceforge.net/doc/tcl/
Tutorials Point: Tcl/Tk Tutorial
Tcl is a general-purpose, multi-paradigm system programming language. Tk is a cross-platform toolkit use for building GUI in many languages. Designed for beginners and advanced users, this tutorial covers topics ranging from the basics of Tcl/Tk to its role in various applications. Separate sections for instruction in the Tcl language and the Tk toolkit are included, along with exam notes, best practices, questions and answers, resume writing and interview questions, and a computer glossary.
https://www.tutorialspoint.com/tcl-tk/
WiBitNet is a video tutorial site that features entertaining programming and computer tutorials, specializing in focused and linear content. Its section on Tcl programming includes a video introduction and modules on variables, syntax, input/output, numbers, strings, control structures, lists, arrays, keyed lists, regular expressions, time, files, namespaces, packages, sockets, and others, including labs. Related courses are listed.
https://www.wibit.net/course/Tcl
XOTcl is an object-oriented scripting language based on Tcl, with a basic object model influenced by CLOS. The language is contained in the industry-standard Tcl distribution, ActiveTc, available for several platforms. An overview of the language is put forth, along with a list of publications mentioning the language, and online manuals. Development notes and announcements. downloads, and a list of packages that are part of an XOTcl distribution.
http://www.xotcl.org/