Tcl
John Ousterhout et ses étudiants de l'Université de Californie à Berkeley se heurtaient à un problème récurrent. Ils concevaient des outils interactifs pour la création de circuits intégrés – Magic, Crystal et d'autres – et chacun réclamait son propre langage de commandes. L'équipe consacrait peu d'efforts à ces langages. Le résultat se révélait prévisible avec des syntaxes limitées, incohérentes entre elles, qui finissaient par devenir gênantes.
La solution germa durant l'automne 1987, pendant qu'Ousterhout passait son congé sabbatique au laboratoire de recherche DEC. Pourquoi ne pas créer un interpréteur unique, pensé dès le départ comme une bibliothèque que n'importe quelle application pourrait intégrer ? Ce langage fournirait les bases – variables, boucles, procédures – et chaque programme y ajouterait ses propres commandes spécialisées. Cette extensibilité deviendrait la marque de fabrique de Tcl, le « Tool Command Language ».
Les premiers développements démarrèrent début 1988. Quelques mois plus tard, un éditeur de texte graphique utilisait déjà Tcl. Ousterhout ne s'attendait pas à ce que d'autres développeurs s'y intéressent – erreur de jugement qui l'amuserait plus tard.
Pendant ce temps, les interfaces graphiques compliquaient drastiquement la vie des programmeurs. Les années 1980 voyaient naître des environnements visuels de plus en plus sophistiqués, mais leur développement demandait des investissements colossaux. Ousterhout s'inquiétait : les petites équipes de recherche allaient-elles encore pouvoir innover ? La seule issue consistait à assembler des systèmes complexes à partir de briques réutilisables.
Cette réflexion déboucha sur Tk, l'extension graphique de Tcl. L'idée était simple : construire des interfaces en combinant des composants prêts à l'emploi, avec Tcl comme ciment entre les éléments. Fin 1988, le développement de Tk commençait. Il faudrait deux années pour obtenir quelque chose de vraiment utilisable.
En 1989, Tcl sortait de l'ombre. Ousterhout le présenta en janvier 1990 à la conférence USENIX, où l'accueil fut enthousiaste. Il décida alors de mettre le code source sur le serveur FTP de Berkeley. Internet fit le reste : le bouche-à-oreille propagea Tcl à une vitesse surprenante.
Don Libes du National Institute of Standards and Technology créa la première application Tcl à connaître un succès retentissant. Expect automatisait les programmes UNIX interactifs – une bénédiction pour les administrateurs systèmes qui passaient leurs journées à jongler entre terminaux et scripts. Le succès d'Expect fit connaître Tcl bien au-delà des cercles universitaires.
La croissance devint exponentielle au début des années 1990. D'une poignée d'utilisateurs en 1989, on passa à plusieurs dizaines de milliers en 1993. Deux raisons expliquent cet engouement. Tk représentait le moyen le plus direct de créer des interfaces graphiques sous UNIX – cinq à dix fois plus rapide qu'avec Motif. Et Tcl répondait aux besoins de développeurs qui voulaient rendre leurs applications scriptables sans s'embarrasser de créer leur propre langage.
En 1994, Ousterhout quittait Berkeley pour Sun Microsystems. L'entreprise lui donna les moyens de ses ambitions : une équipe dédiée qui atteignit douze personnes en trois ans. Cette période fut prolifique. Tcl s'émancipait d'UNIX pour conquérir Windows et Macintosh. Le système d'entrées-sorties fut refondu, les sockets réseau intégrés. Un compilateur transformait désormais les scripts en bytecode. Safe-Tcl apportait un modèle de sécurité, tandis qu'un plugin permettait d'exécuter des scripts directement dans les navigateurs web.
1998 marqua la reconnaissance officielle. Tcl reçut le prix ACM du meilleur logiciel système, distinction réservée aux programmes ayant marqué durablement l'informatique. La même année, le prix USENIX STUG venait saluer l'excellence technique de l'outil.
Fin 1997, Ousterhout avait créé Scriptics pour se consacrer entièrement à Tcl. La société développait TclPro, une suite d'outils commerciaux, tout en continuant de distribuer gratuitement le cœur de Tcl. La version 8.1 d'avril 1999 introduisit Unicode, la gestion des threads et un nouveau moteur d'expressions régulières.
Le nom Scriptics disparut en mai 2000, remplacé par Ajuba Solutions pour refléter l'orientation vers XML. Interwoven racheta l'entreprise en octobre. Pour garantir l'indépendance du développement, une équipe centrale autonome – la Tcl Core Team – prit le relais durant l'été 2000.
L'histoire de Tcl témoigne de la trajectoire imprévisible des innovations techniques. Un projet universitaire modeste peut devenir un outil majeur si sa conception répond à des besoins réels et si une communauté s'en empare. Tcl prouva l'importance de rendre les applications scriptables et démontra l'intérêt des composants réutilisables pour les interfaces graphiques.