THE 1980S

Tcl

John Ousterhout and his students at the University of California, Berkeley, faced a recurring problem. They were designing interactive tools for integrated circuit design—Magic, Crystal, and others—and each required its own command language. The team devoted little effort to these languages. The result was predictable: limited syntaxes, inconsistent with each other, that eventually became cumbersome.

The solution germinated during the fall of 1987, while Ousterhout spent his sabbatical at the DEC research laboratory. Why not create a single interpreter, designed from the start as a library that any application could integrate? This language would provide the basics—variables, loops, procedures—and each program would add its own specialized commands. This extensibility would become the hallmark of Tcl, the "Tool Command Language."

The initial development began in early 1988. A few months later, a graphical text editor was already using Tcl. Ousterhout didn't expect other developers to take an interest in it—a misjudgment that would amuse him later.

Meanwhile, graphical interfaces were drastically complicating programmers' lives. The 1980s saw increasingly sophisticated visual environments emerge, but their development required massive investments. Ousterhout worried: would small research teams still be able to innovate? The only way out was to assemble complex systems from reusable building blocks.

This reflection led to Tk, the graphical extension of Tcl. The idea was simple: build interfaces by combining ready-made components, with Tcl as the glue between elements. By the end of 1988, Tk development was beginning. It would take two years to obtain something truly usable.

In 1989, Tcl emerged from obscurity. Ousterhout presented it in January 1990 at the USENIX conference, where the reception was enthusiastic. He then decided to put the source code on Berkeley's FTP server. The Internet did the rest: word of mouth spread Tcl at a surprising speed.

Don Libes of the National Institute of Standards and Technology created the first Tcl application to achieve resounding success. Expect automated interactive UNIX programs—a blessing for system administrators who spent their days juggling between terminals and scripts. Expect's success brought Tcl to attention far beyond academic circles.

Growth became exponential in the early 1990s. From a handful of users in 1989, the number grew to several tens of thousands in 1993. Two reasons explain this enthusiasm. Tk represented the most direct way to create graphical interfaces under UNIX—five to ten times faster than with Motif. And Tcl met the needs of developers who wanted to make their applications scriptable without the burden of creating their own language.

In 1994, Ousterhout left Berkeley for Sun Microsystems. The company gave him the means to pursue his ambitions: a dedicated team that reached twelve people in three years. This period was prolific. Tcl broke free from UNIX to conquer Windows and Macintosh. The I/O system was redesigned, network sockets integrated. A compiler now transformed scripts into bytecode. Safe-Tcl provided a security model, while a plugin allowed scripts to be executed directly in web browsers.

1998 marked official recognition. Tcl received the ACM award for best system software, a distinction reserved for programs that have had a lasting impact on computing. The same year, the USENIX STUG award came to honor the tool's technical excellence.

At the end of 1997, Ousterhout had created Scriptics to devote himself entirely to Tcl. The company developed TclPro, a suite of commercial tools, while continuing to distribute the core of Tcl for free. The April 1999 version 8.1 introduced Unicode, thread management, and a new regular expression engine.

The name Scriptics disappeared in May 2000, replaced by Ajuba Solutions to reflect the orientation toward XML. Interwoven acquired the company in October. To guarantee the independence of development, an autonomous core team—the Tcl Core Team—took over during the summer of 2000.

The history of Tcl testifies to the unpredictable trajectory of technical innovations. A modest university project can become a major tool if its design meets real needs and if a community embraces it. Tcl proved the importance of making applications scriptable and demonstrated the value of reusable components for graphical interfaces.