The A-Z of Programming Languages: Tcl
- 08 May, 2009 13:22
- Comments 1
Tcl creator John Ousterhout
Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Larry Wall, creator of the Perl programming language, Don Syme, senior researcher at Microsoft Research Cambridge, who developed F#, Simon Peyton-Jones on the development of Haskell, Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth.
We’ve also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Steve Bourne on Bourne shell, Luca Cardelli on Modula-3, Walter Bright on D, Brendan Eich on JavaScript, Anders Hejlsberg on C#, Guido van Rossum on Python and Prof. Roberto Ierusalimschy on Lua. We most recently spoke to Falcon creator Giancarlo Niccolai.
In this interview Tcl creator John Ousterhout, took some time to tell Computerworld about the extensibility of Tcl, its diverse eco-system and use in NASA's Mars Lander project.
If you wish to submit any suggestions for programming languages or language authors you would like to see covered, please email kathryn@computerworld.com.au
What prompted the creation of Tcl?
In the early and mid-1980's my students and I created several interactive applications, such as editors and analysis tools for integrated circuits. In those days all interactive applications needed command-line interfaces, so we built a simple command language for each application. Each application had a different command language, and they were all pretty weak (for example, they didn't support variables, looping, or macros). The idea for Tcl came to me as a solution to this problem: create a powerful command language, and implement it as a library package that can be incorporated into a variety of different applications to form the core of the applications' command languages.
Was there a particular problem the language aimed to solve?
The original goal for Tcl was to make it easy to build applications with powerful command languages. At the time I didn't envision Tcl being used as a stand-alone programming language, though that is probably the way that most people have used it.
How does Tk fit into the picture?
One of the key features of Tcl is extensibility: it is easy to create new features that appear as part of the language (this is the way that applications using Tcl can make their own functionality visible to users). At the same time that I was developing Tcl, graphical user interfaces were becoming popular, but the tools for creating GUI applications (such as the Motif toolkit for the X Window System) were complex, hard to use, and not very powerful. I had been thinking about graphical toolkits for several years, and it occurred to me that I could build a toolkit as an extension to Tcl. This became Tk. The flexible, string-oriented nature of Tcl made it possible to build a toolkit that was simple to use yet very powerful.
What influence, if any, did Tcl have in the development of Java?
As far as I know the Java language developed independently of Tcl. However, the AWT GUI toolkit for Java reflects a few features that appeared first in Tk, such as a grid-based geometry manager.
- Bookmark this page
- Share this article
- Got more on this story? Email TechWorld
- Follow TechWorld on twitter
- The A-Z of Programming Languages: Perl
- The A-Z of Programming Languages: F#
- The A-Z of Programming Languages: Haskell
- The A-Z of Programming Languages: AWK
- The A-Z of Programming Languages: Ada
- The A-Z of Programming Languages: ASP
- The A-Z of Programming Languages: BASH/Bourne-Again Shell
- The A-Z of Programming Languages: C++
- The A-Z of Programming Languages: Forth
- The A-Z of Programming Languages: INTERCAL
- The A-Z of Programming Languages: YACC
- The A-Z of Programming Languages: Bourne shell, or sh
- The A-Z of Programming Languages: Modula-3
- The A-Z of Programming Languages: D
- The A-Z of Programming Languages: JavaScript
- The A-Z of Programming Languages: C#
- The A-Z of Programming Languages: Python
- The A-Z of Programming Languages: Lua
- The A-Z of Programming Languages: Falcon
- Tcl creator John Ousterhout
- ALM Buyers Guide: A Practical Guide to Choosing the Right Agile Tools for your Team
- Selecting an Application Lifecycle Management Vendor: An Ovum Report
- Case Study: Danske Bank Group improves efficiency and reduces time to market
- Enterprise Buyers Guide for Application Development Software
- Oracle Database 11g Product Family
-
Jailbreak of Apple iOS 5.1.1 due 'in days'
-
Nokia launches new Windows Phones
-
Nokia Lumia 900, 610 heading Down Under
-
Consider desktops in the cloud for BYOD
-
Samsung Apps store hits 100 million downloads
-
Microsoft Office
-
Windows 7 for Seniors for Dummies®
-
Windows 7 for Dummies®
-
Computers for Seniors for Dummies, 2nd Edition
-
Office 2007 All-In-One Desk Reference for Dummies
-
Office 2007 for Dummies
-
Windows 7 for Dummies® Dvd+book Bundle
-
Excel 2007 All-In-One Desk Reference for Dummies
-
Teach Yourself Visually Windows 7







Comments
Tim Davis
My thanks for TCL
As an EDA tool user the proliferation of TCL as the defacto choice for command line interfaces has made my life and my job much much simpler. The language is simple yet brilliant.
The uplevel (and upvar) command was sheer genius and should win John some sort of ACM Turing award if you ask me. And John shouldn't lose a moment of sleep over failing to integrate OO in early TCL. William H. Duquette's spectacular SNIT OO system is all you need -- and it is written purely in TCL. (http://www.wjduquette.com/snit/) That SNIT could be added to TCL proves how amazing TCL truly is. (I dare you to accomplish the same feat with ANY other language).
Thousands of bright people have contributed to TCL's growth and maturity over the last 20 years -- thanks to them too!
Post new comment