HOWTO Tcl et Tk sous Linux (Linux Tcl and Tk HOWTO)

Luca Rossetti lukaros@tin.it, traduit par Carine Bournez, cbournez@if.insa-lyon.fr

v0.2, 07 November 1998
Ce document d�crit l'approche de Linux � Tcl, un langage de script. C'est un langage interpr�t�, facile � apprendre, qui utilise l'absence de typage pour permettre un niveau de programmation plus �lev� et le d�veloppement rapide d'applications. La bo�te � outils Tk est un environnement de programmation pour cr�er des interfaces graphiques (Graphical User Interfaces, GUI) sous le syst�me X-Window. Leurs fonctionnalit�s incluent la possibilit� d'extension et l'inclusion dans une autre application, le d�veloppement rapide et la facilit� d'utilisation. Conjointement, Tcl et Tk apportent de grands b�n�fices � la fois au d�veloppeur et � l'utilisateur. Les interfaces bas�es sur Tk ont tendance � �tre plus personnalisables et dynamiques que celles construites avec une bo�te � outils reposant sur du C ou C++. Tk reproduit l'allure et les sensations de Motif. Un grand nombre d'applications int�ressantes sous X sont enti�rement impl�ment�es en Tk, sans aucune nouvelle commande sp�cifique � l'application elle-m�me.

1. Introduction

Ceci est le Linux Tcl et Tk HOWTO. Il vise, en tant que r�f�rence pour Linux, � couvrir tout ce qu'il est n�cessaire de conna�tre concernant l'installation, la configuration, ainsi qu'une introduction au d�veloppement sous Tcl et Tk. Il pr�sente d'abord un historique, puis aborde les avantages et inconv�nients de Tcl et Tk sous linux, et enfin des r�f�rences � d'autres sources d'information sur une large �tendue de sujets li�s � ce langage de script simple mais puissant.

Si vous avez d�j� recompil� votre noyau Linux sous X en utilisant la commande


make xconfig

vous vous �tre certainement trouv� face � la puissance de ce langage de script.

Apr�s l'ex�cution de la premi�re �tape de la recompilation du noyau, un script appel� kconfig.tk est ex�cut� via wish (l'interpr�teur Tcl). La fen�tre de configuration du noyau Linux appara�t. Au lieu de r�pondre � des questions en s�rie, cet utilitaire de configuration bas� sur X vous permet d'utiliser des cases � cocher pour s�lectionner les options du noyau que vous souhaitez activer.

Le syst�me conserve les options de votre derni�re configuration afin qu'� chaque nouvelle ex�cution vous n'ayiez � ajouter/supprimer quelques s�lections au lieu de reprendre tout l'ensemble des options. De plus, vous pouvez parcourir l'ensemble (ou seulement une partie) des options du noyau dans l'ordre que vous pr�f�rez. Apr�s cette �tape simplifi�e, vous pouvez recompiler votre noyau, en suivant la mani�re traditionnelle.

Il existe en fait un autre exemple bien connu. Avez-vous d�j� utilis� « printtool » ? (Printer Config Tool (C) Copyright 1994 by Red Hat Software - author: Michael Callahan). Si vous avez install� une distribution Red Hat, vous avez agr�ablement r�ussi � l'utiliser pour mettre en place des services d'impression. Eh bien l'interface de printtool est principalement un script Tcl/Tk.

Pour ceux qui ne connaissent pas Red Hat, laissez-moi vous dire comment vous pouvez configurer facilement vos imprimantes, juste en remplissant quelques champs de texte et en cochant quelques cases.

Le programme lui-m�me se charge de mettre en place les services en cr�ant le r�pertoire de spool, �crit le fichier /etc/printcap et le filtre de l'imprimante, relance lpd et teste votre filtre avec des pages en ascii ou en postscript. Il permet de manipuler les options de ghostscript (c'est-�-dire choisir jusqu'� 8 pages par page en sortie et r�gler les marges), propose une aide en ligne et plein d'autres caract�ristiques.

Quelle est la diff�rence avec une autre impl�mentation de service d'impression ?

Tout est r�alis� en utilisant Tcl/Tk comme une « colle » entre applications consolid�es et en op�rant avec les fichiers de configurations standards de Linux, dans un mode fen�tr�, visuel et interactif, sous X-Window. Aucune nouvelle commande sp�cifique � l'application n'a �t� �crite.

1.1 But de ce document

Actuellement, le but de ce document est de fournir des r�f�rences de d�part aux utilisateurs de Linux ; dans les versions futures, j'essaierai d'ajouter un petit « tutoriel de programmation ». J'insiste : ce n'est pas (et ne veut pas remplacer) un manuel utilisateur complet ni une r�f�rence pour le d�veloppement et la programmation en Tcl et Tk - c'est juste un point de d�part pour les utilisateurs de Linux.

La conception que l'auteur se fait d'un manuel de r�f�rence co�ncide avec la d�finition des pages man et de nombreuses personnes apprennent Tcl/Tk � partir de ces sources brutes d'information. Ces fichiers font partie de la distribution du code source et sont install�s sur votre machine Linux. Vous pourrez acc�der aux pages de manuel de Tcl/Tk par la commande man.

Beaucoup de tutoriels de programmation complets et structur�s ont �t� �crits dans le but de laisser l'utilisateur d�butant trafiquer avec Tcl/Tk ; des tonnes d'autres donn�es sont disponibles sur Internet. M'inspirant de la philosophie de Tcl/Tk, je ne vais pas r�inventer la roue, mais essayer de cimenter cette �norme masse d'information d�j� disponible.

Je vous sugg�re de jeter un oeil aux autres documents cit�s dans la section R�f�rences pour savoir o� trouver des informations sp�cifiques � propos de Tcl/Tk.

1.2 Ce qu'il faut savoir avant de poursuivre

Pour comprendre le B.A.BA de Tcl/Tk, vous n'avez pas besoin d'�tre un gourou de la programmation, la syntaxe des commandes est tr�s simple. Basiquement, vous avez besoin de bien conna�tre :

1.3 Nouvelles versions de ce document

Les versions plus r�centes de ce document seront t�l�charg�es sur le site ftp : ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/ et seront disponibles sur tous les autres miroirs.

Les versions hypertexte et autres de ceci, ainsi que les autres HOWTOs de Linux sont principalement disponibles � http://sunsite.unc.edu/LDP/ et http://www.linux-howto.com et sur beaucoup d'autres sites web miroirs.

(NDT : En France, vous pouvez utiliser le site suivant pour le document original : Miroir de Sunsite ou, mieux, la version fran�aise :

Archive des HOWTO fran�ais sur LIP6

Archive des HOWTO fran�ais chez Freenix)

J'essaierai d'ajouter � ma page Web la version la plus r�cente en html et en sgml. La plupart des distributions de Linux sur CD-ROM incluent les HOWTOs, souvent dans un sous-r�pertoire de /usr/doc/ et vous pouvez �galement en acheter des copies imprim�es chez certains distributeurs.

Parfois, les HOWTOs disponibles sur les CD-ROMs, sites ftp ou en copie imprim�e ne sont plus d'actualit�. Si la date y figurant est d�pass�e de plus de 6 mois, il existe probablement une version plus r�cente sur Internet.

Si vous faites une traduction de ce document dans une autre langue, envoyez-moi un mot et j'en inclurai une r�f�rence ici.

1.4 Historique des r�visions

1.5 Retours et commentaires

Je compte sur vous, lecteurs, pour rendre ce HOWTO utile. Si vous avez des suggestions, corrections ou commentaires, s'il vous pla�t envoyez-les moi ( Luca Rossetti), et j'essaierai de les inclure dans la version suivante.

Si des liens mentionn�s dans ce document venaient � �tre indisponibles ou d�plac�s, merci de m'en informer tout de suite pour que je puisse mettre � jour ou changer le lien.

J'ai la volont� de r�pondre aux questions d'ordre g�n�ral � propos de Tcl/Tk et de Linux du mieux que je peux. Avant tout, lisez s'il vous pla�t toutes les informations contenues dans ce HOWTO, et envoyez-moi un message d�taill� sur le probl�me rencontr�.

Si vous publiez ce document sur un CD-ROM ou sous forme papier, j'appr�cierais d'en avoir une copie. Envoyez-moi un e-mail et je vous donnerai mon adresse postale.

Dans plusieurs sections je mentionne des soci�t�s de publication ou des URLs de sites commerciaux. Je ne travaille vraiment pas pour ces gens-l�.

1.6 Cr�dits

La plupart des informations de ce HOWTO proviennent du livre du Dr. Ousterhout : Scriptics et de la FAQ de comp.lang.tcl de Larry W. Virden.

Je souhaiterais remercier le PLUTO, Groupe Italien des Utilisateurs de Linux, et l'ensemble des volontaires de l' ILDP (Italian Linux Documentation Project), sp�cialement Eugenia Franzoni et Giovanni Bortolozzo pour leurs commentaires.

1.7 Politique de diffusion

Ce document est Copyright 1998 par Luca Rossetti.

Ce document est diffus� dans l'espoir qu'il soit utile au lecteur : bien s�r il est consid�r� sans garantie ; sans m�me la garantie sous-jacente de commercialisabilit� ou d'ad�quation � un but particulier. Ce HOWTO est une documentation libre ; vous pouvez le redistribuer et/ou le modifier, selon les termes du Copyright LDP. Veuillez lire le Manifeste du LDP pour plus de d�tails.

2. Histoire de Tcl/Tk

Tcl/Tk a �t� cr�� par le Dr. John Ousterhout (prononcer « Oh'-stir-howt ») alors qu'il enseignait � l'universit� de Berkeley, en Californie. En fait, il a commenc� � l'impl�menter � son retour � Berkeley au printemps 1988 ; d�s l'�t�, il �tait utilis� dans quelques applications internes, mais Tk n'existait pas encore. Lisez l'histoire de Tcl/Tk �crite par son auteur � http://www.scriptics.com/scripting/tclHistory.html.

2.1 Chronologie

3. Qu'est-ce que Tcl/Tk ?

3.1 Qu'est-ce que Tcl ?

Tcl (prononcer « tickeul ») est l'acronyme de "Tool Command Language" (langage de commandes-outils). Tcl est en fait divis� en deux parties : un langage et une biblioth�que.

Tcl est un langage de programmation simple, dont le but est de passer des commandes � des programmes interactifs tels que des �diteurs de texte, des d�bogueurs et des interpr�teurs shell. Il poss�de une syntaxe simple et il est lui-m�me programmable : les utilisateurs de Tcl peuvent en effet �crire des proc�dures pour cr�er des commandes plus puissantes que celles que fournies par l'ensemble pr�-construit.

D'autre part, Tcl est un paquetage biblioth�que int�grable dans des applications. La biblioth�que Tcl est constitu�e d'un analyseur syntaxique du langage Tcl, de routines impl�mentant les commandes pr�-d�finies de Tcl, et de proc�dures permettant � chaque application d'ajouter � Tcl des commandes additionnelles qui lui sont sp�cifiques. Le programme applicatif g�n�re des commandes Tcl et les passe � l'analyseur syntaxique de Tcl pour l'ex�cution.

Les commandes peuvent �tre g�n�r�es en lisant des caract�res sur une source en entr�e ou bien en associant des cha�nes de caract�res avec des �l�ments de l'interface utilisateur de l'application, comme des boutons, des entr�es de menus, ou d'autres widgets (NdT : widget = Window Gadget, �l�ment de fen�tre). Lorsque la biblioth�que Tcl re�oit une commande, elle analyse les champs qui la composent et ex�cute directement les commandes pr�-d�finies.

Pour les commandes impl�ment�es par l'application, Tcl rappelle l'application pour ex�cuter les commandes. Dans bien des cas, les commandes lanceront des appels r�cursifs � l'interpr�teur Tcl en passant des cha�nes optionnelles � ex�cuter (en fait les proc�dures et commandes de bouclage conditionnel fonctionnent toutes de cette mani�re). Un programme d'application peut tirer de nombreux avantages de l'utilisation de Tcl comme langage de commande :

Il est important de noter que Tcl a �t� con�u en pensant que le programmeur devrait en fait utiliser deux langages ou plus lorsqu'il construit un syst�me logiciel de taille cons�quente : un pour manipuler des structures de donn�es internes complexes, et l� o� la performance est cruciale, et un autre, comme Tcl, pour �crire de tr�s courts scripts qui assemblent les autres morceaux, en fournissant des possibilit�s d'extensions � l'utilisateur.

Pour celui qui �crit des scripts Tcl, la facilit� d'apprentissage, de programmation et d'assemblage, sont plus importantes que les performances ou les possibilit�s de structures de donn�es complexes et d'algorithmes.

Tcl a �t� construit pour �tre ais�ment inclus dans un langage de plus bas niveau lorsqu'on rencontre des t�ches pour lesquelles un langage de plus bas niveau est plus ad�quat. Ainsi, les fonctionnalit�s de base peuvent rester petites et chacun a seulement besoin d'ajouter les morceaux qu'il veut ou doit avoir.

Une r�ponse � la question « Qu'est-ce que Tcl ? raquo; se trouve � http://www.NeoSoft.com/tcl/whatistcl.html.

3.2 Qu'est-ce que Tk ?

Tk (prononcer "Tiii-kay") est une extension de Tcl qui apporte au programmeur une interface avec le syst�me de fen�trage X11. Il est � noter que Tk a �t� compil� avec succ�s sous X11 R4, X11 R5, X11 R6, ainsi que les environnements NeWS/X11 de Sun.

De nombreux utilisateurs rencontreront Tcl/Tk � travers la commande "wish". Wish est un shell de fen�trage simple qui permet � l'utilisateur d'�crire des applications Tcl/Tk dans un environnement de prototypage.

Jusqu'� pr�sent, Tcl/Tk ne supporte pas de fontes pour les langues japonaise, chinoise, cor�enne,...

3.3 Extensions

Comme Tcl est facile � �tendre, beaucoup essaient de partager des extensions, notamment le populaire itcl, [incr Tcl], ObjectTcl, TclX, Tix , et BLT.

Ces extensions n�cessitent bien �videmment un interpr�teur Tcl �tendu. De plus, de nombreuses applications Tcl libres n�cessitent une extension particuli�re de Tcl pour fonctionner.

Une des extensions les plus populaires est certainement Expect. Elle permet d'avoir une interface sympathique pour la plupart des commandes UNIX basiques en ligne, telles que ftp, telnet, rlogin, passwd, fsck, etc.

Une liste compl�te des extensions de Tcl/Tk peut �tre trouv�e � l'URL http://www.scriptics.com/resource/software/extensions/.

3.4 Plates-formes support�es

Cette section contient des informations � propos de Tcl 8.0 et Tk 8.0, versions les plus r�centes de Tcl/Tk. Elles sont sorties le 18 ao�t 1998 et le patch le plus r�cent (8.0.3) date du 3 septembre 1998.

Quand vous t�l�d�chargez Tcl et Tk, vous r�cup�rez deux programmes, wish et tclsh, les biblioth�ques supportant les scripts, et la documentation en ligne. Ces programmes supportent des plates-formes g�n�riques de d�veloppement d'applications en Tcl. Wish inclut la bo�te � outils pour interface graphique utilisateur Tk. Les paquetages sont pr�ts � �tre utilis�s apr�s l'installation.

Tcl 8.0 et Tk 8.0 fonctionnent sur la plupart des versions des syst�mes d'exploitation suivants :

4. Installation et prise en main de Tcl et Tk

Les distributions r�centes incluent Tcl et Tk. Des paquetages rpm et deb de binaires pr�-compil�s sont disponibles pour les distributions Red Hat, SuSE et Debian (ce qui facilite l'installation).

Une installation standard d'une distribution r�cente inclura Tcl/Tk puisque c'est un pr�requis de nombreux utilitaires de configuration qui tournent principalement sous X.

Tcl et Tk sont distribu�s librement sur Internet sous forme de code source. Il n'y a pas de restrictions quant � leur utilisation, ni de licence ou droits � payer (voir la section termes de la licence pour information compl�te).

Encore plus de scripts et d'extensions Tcl/Tk sont disponibles librement �galement.

4.1 T�l�d�chargement des distributions de base

La base de Tcl/Tk se constitue des biblioth�ques Tcl et Tk, plus les applications wish et tclsh, la documentation associ�e, des biblioth�ques de scripts et des applications de d�monstration. Le site FTP primaire pour ces donn�es est ftp://ftp.scriptics.com/pub/tcl/.

Le site primaire en HTTP est http://www.scriptics.com/software/download.html.

4.2 Installation

A moins qu'elle ne soit d�j� disponible en paquetages propri�taires pour votre distribution, vous souhaiterez t�l�d�charger le version code source. Vous aurez besoin des sources de Tcl comme de Tk. La proc�dure suivante se r�f�re � ce second cas :

Choisissez entre le format tar et le format tar gzipp�.

Fichiers Tar compress�s

Sources de Tcl (tcl8.0.3.tar.Z) : fichier tar compress� (environ 2.4 Mo). Sources de Tk (tk8.0.3.tar.Z) : fichier tar compress� (environ 3.3 Mo).

Fichiers Tar gzipp�s

Sources de Tcl (tcl8.0.3.tar.gz) : fichier tar gzipp� (environ 1.5 Mo). Sources de Tk (tk8.0.3.tar.gz) : fichier tar gzipp� (environ 2.1 Mo).

Quand vous r�cup�rez ces fichiers, vous obtenez un fichier compress� tar avec un nom comme tcl8.0.3.tar.gz ou tcl8.0.3.tar.Z. Ces fichiers sont identiques, sauf par la technique de compression (les fichiers .gz sont g�n�ralement plus petits que les .Z).

Pour d�compresser la distribution, lancez des commandes shell comme celles-ci, selon la version que vous avez r�cup�r�e :


gunzip -c tcl8.0.3.tar.gz

ou
tar xf - zcat tcl8.0.3.tar.Z

ou
tar xf - unzip tcl80.3.zip

Chacune de ces commandes cr�e un r�pertoire appel� tcl8.0.3, qui contient les sources pour toutes les plates-formes, la documentation, et les biblioth�ques de script pour Tcl 8.0. Pour compiler et installer la distribution, suivez les instructions du fichier README dans le r�pertoire de la distribution. Assurez-vous de compiler Tcl avant Tk, puisque Tk d�pend d'informations de Tcl.

4.3 L'archive de contributions

Il existe beaucoup d'autres paquetages libres pour Tcl et Tk, incluant des scripts �crits en Tcl et �galement des extensions �crites en C ou C++. Ces paquetages comprennent des applications de bases de donn�es et d'acc�s r�seau, un constructeur d'interfaces graphiques utilisateur, le programme expect, des widgets Tk suppl�mentaires, et des dizaines d'autres choses.

Le site primaire pour l'archive Tcl/Tk est ftp://ftp.neosoft.com/pub/tcl.

4.4 Sites miroirs

Plusieurs autres sites dans le monde sont des miroirs de tout ou partie des donn�es du site de base et de l'archive de contributions ; vous trouverez peut-�tre plus pratique de prendre des donn�es sur un miroir plus proche de vous.

Le fichier ftp "0_mirror" � ftp://ftp.scriptics.com/pub/tcl/ donne une liste de miroirs dans votre pays.

4.5 Quelles versions utiliser ?

R�f�rez-vous toujours � la derni�re version recommand�e dans la section « Tcl/Tk Core » de Scriptics Software Central page.

A l'heure o� j'�cris, les versions recommand�es sont les derni�res (Tcl 8.0.3 et Tk 8.0.3), qui sont sorties en septembre 1998. Tcl 8.0 contient un nouveau compilateur de pseudo-code qui acc�l�re l'ex�cution d'un facteur 2 � 10. Il fournit aussi des contextes de d�nomination (namespaces), des entr�es/sorties binaires et plusieurs nouvelles caract�ristiques.

Tk 8.0 est la premi�re version qui fournit l'allure et les impressions naturelles sur les Macintoshes et les PCs. Tk 8.0 supporte �galement l'encapsulation d'applications et propose un nouveau m�canisme de fonte portable. Tcl 8.0 et Tk 8.0 offrent tous deux des fonctionnalit�s suppl�mentaires au mod�le de s�curit� Safe-Tcl.

4.6 O� adresser des rapports de probl�mes, bugs, ou am�liorations

Utilisez news:comp.lang.tcl pour les communications publiques.

(NdT : le forum en langue fran�aise �quivalent est news:fr.comp.lang.tcl).

Une alternative consiste � envoyer probl�mes, suggestions, id�es nouvelles, etc. directement � l'auteur. Un email � John Ousterhout permet de le contacter.

Lorsque vous rendez compte de probl�mes ou de bugs, veillez � mentionner tous les d�tails n�cessaires � un diagnostic correct. Basiquement, vous devez d�crire votre mat�riel, votre syst�me d'exploitation et la version de Tcl/Tk utilis�e, pr�ciser si vous avez fait des modifications ou des ajouts, et donner, si possible, soit un petit bout de code, soit une URL vers du code mettant en �vidence le probl�me.

Si vous avez du logiciel dont vous pensez que la communaut� pourrait tirer parti (que ce soit un programme, une fonction, une extension, ou un simple exemple), ou si vous avez un document, un article de journal ou de magazine, une th�se, un projet, ou m�me une annonce commerciale, faites-le savoir aux personnes susceptibles d'�tre int�ress�es.

Il y a des responsables de FAQ pour tous ces domaines, ainsi qu'un forum Usenet comp.lang.tcl.announce que vous pouvez utiliser.

Cela vaut toujours la peine de soumettre vos contributions directement sur le site ftp afin que davantage de personnes puisse dans le futur profiter de votre exp�rience.

Pour poster sur le forum comp.lang.tcl.announce, envoyez un email d�taill� � tcl-announce. N'h�sitez pas � renvoyer les gens vers votre propre site ftp ou WWW si vous en avez un.

5. Un tout petit peu de programmation

Comme Tcl est un langage interpr�t�, pour ex�cuter un programme Tcl (qu'on appelle �galement un script) vous passez normalement le fichier � l'interpr�teur Tcl, wish, par exemple :


wish hello.tcl

Vous pouvez aussi utiliser wish en mode interactif et lui donner des commandes � l'invite.

Il existe un autre interpr�teur de Tcl en standard, tclsh, qui comprend seulement le langage Tcl. Tclsh n'a aucune commande de l'interface utilisateur de Tk, donc il n'est pas possible de cr�er des programmes graphiques avec tclsh.

Certaines applications Tcl libres �tendent le langage en ajoutant de nouvelles commandes �crites sous la forme de fonctions C. Dans ce cas, vous devez compiler l'application au lieu de passer seulement son code Tcl � l'interpr�teur wish. Ce programme applicatif compil� est v�ritablement, du point de vue de Tcl, une nouvelle version de l'interpr�teur wish, avec les nouvelles commandes en C li�es dedans. Bien s�r, le programme peut �tre bien plus qu'un simple interpr�teur Tcl. (Note : vous pouvez aussi utiliser la capacit� de chargement automatique de Tcl sur les syst�mes qui la supportent).

5.1 Programme-minute en Tcl

Tcl a une structure simple. Chaque ligne commence par une nouvelle commande, par exemple button et un certain nombre d'arguments. Chaque commande est impl�ment�e comme si c'�tait une fonction C, qui prend en charge tous les arguments.

Voici un exemple tr�s bateau, le c�l�bre Hello World �crit en Tcl/Tk :


# Ceci est un commentaire
button .b -text "Hello World" -command exit
pack .b

Dans cet exemple, vous devez taper les commandes de mani�re interactive dans tclsh ou wish.

Vous pouvez aussi placer les commandes dans des fichiers de script et les appeler tout comme des scripts shell. Pour reprendre l'exemple pr�c�dent, le programme Hello World s'�crirait :


#! /usr/local/bin wish -f
button .b -text "Hello World" -command exit
pack .b

Mettez ce texte dans un fichier appel� Hello et assurez-vous que wish est install� dans /usr/local/bin (si ce n'est pas le cas, corrigez le chemin d'acc�s).

Rendez le fichier Hello ex�cutable, par un :


chmod 775 Hello

et lancez-le sous X.

Vous allez voir un bouton marqu� Hello World dans une fen�tre : cliquer dessus ferme la fen�tre.

6. Langage de script : avantages et inconv�nients

Afin de comprendre l'importance de Tcl/Tk et son futur, je vous recommande la visite de http://www.scriptics.com/people/john.ousterhout/ par John K. Ousterhout . Vous y trouverez des choses � lire sur l'importance des scripts (�crits dans des langages tels que Tcl) et une comparaison avec la programmation syst�me (dans des langages comme le C et le Java).

Pour une lecture � propos des comparaisons, voyez the comparison discussion.

Voici un r�sum� des principaux avantages et inconv�nients de Tcl/Tk.

6.1 Reproches les plus courants � propos de Tcl

Tcl est interpr�t�

Les donn�es sont trait�es de mani�re primaire comme des cha�nes de caract�re, les programmes �crits en Tcl sont lents. Tcl 8.0 essaie de pallier ceci en compilant � un certain degr� ainsi qu'en autorisant diff�rents types de variables.

Plusieurs caract�ristiques ne sont pas intuitives

Les commentaires sont des commandes plut�t que de vrais commentaires, les nombres commen�ant par 0 sont en octal, l'utilisation correcte des guillemets, etc. Ces aspects sont abord�s dans les diverses FAQs.

6.2 Principaux avantages de Tcl

C'est un langage de script de haut niveau

Vous avez besoin de beaucoup moins de code pour faire le travail, surtout en comparaison avec des applications Motif ou Win32. En g�n�ral, le nombre de lignes de code (Line Of Code, LOC) d'un projet logiciel est l'indice de complexit� le plus important.

Tcl est libre

Vouz pouvez vous procurer les sources gratuitement sur Internet par la page Download de Scriptics ou par le site FTP pour Tcl. Le site de base du logiciel inclut la version code source, ainsi que des versions binaires pour plates-formes Windows et Macintosh ; ou bien vous pouvez trouver Tcl sur un bon nombre de CD-ROMs pour un co�t r�duit.

Une lecture � propos de la base libre de Tcl et Tk : www.scriptics.com/about/news/qa.html .

Il fonctionne sur de nombreuses plates-formes

Il existe des versions pour UNIX (Linux... bien s�r), Windows et Macintosh. Except�es quelques diff�rences entre plates-formes, vos scripts Tcl fonctionneront de la m�me mani�re sur tous les syst�mes.

Il est interpr�t�

Vous pouvez ex�cuter directement votre code sans compilation ni �dition de liens (m�me si quelques compilateurs de Tcl sont disponibles).

Il est extensible

Il est ais� d'ajouter vos propres commandes pour �tendre le langage Tcl. Vous pouvez les �crire en C ou en Tcl.

Il est encapsulable dans vos applications

L'interpr�teur Tcl est purement et simplement un ensemble de fonctions C que vous appelez dans votre code. Cela signifie que vous pouvez utiliser Tcl comme langage applicatif, tout comme un langage de macro pour un tableur.

Tcl/Tk est compatible An 2000

Lisez ce que le cr�ateur de la base Tcl et Tk dit � ce sujet : www.scriptics.com/Y2K.html .

7. Programmes les plus c�l�bres utilisant Tcl/Tk

A part les deux impl�mentations d�crites dans l'Introduction, de nombreuses applications sont �crites en Tcl/Tk ou une combinaison de Tcl et de C. Une liste compl�te de ces impl�mentations figure � la partie 4 de la Foire Aux Questions sur Tcl/Tk (FAQ). Je vous sugg�re de visiter Scriptics' Software Central.

Un autre bon point de d�part est http://www.NeoSoft.com/tcl/.

Une des meilleures applications Tcl tournant sous Linux s'appelle TkDesk. C'est un gestionnaire de fen�tres et un lanceur d'applications qui fonctionne tr�s bien.

Si vous �tes d�veloppeur en Tcl/Tk, n'h�sitez pas � m'envoyer une URL (et une description de votre travail) que je puisse ajouter ici.

8. R�f�rences

Pour de nombreuses raisons, les gens pr�f�rent souvent avoir un manuel papier comme r�f�rence ou aiment �tre aid�s en ligne par d'autres personnes connect�es.

Vous pouvez trouver dans cette section une s�lection de livres de r�f�rence, de tutoriels, de sites www et forums Usenet.

8.1 Livres

Beaucoup de livres concernant Tcl/Tk ont �t� �crits et vont �tre publi�s. Je ne vais pas essayer de tous les r�pertorier (un autre howto n'y suffirait pas :) ). Vous trouverez davantage d'informations et des notes compl�mentaires � :

Je vais essayer ici de r�sumer en quelques lignes les livres que je connais � ce sujet, qui sont tous d'un niveau basique � moyen. L� encore, les gens qui connaissent le sujet ont suffisamment d'informations pour savoir o� trouver des livres d'un niveau plus avanc�.

The Tcl and Tk Toolkit

Auteur : John K. Ousterhout

Information sur le WWW � propos de l'ouvrage : cseng.aw.com/bookdetail.qry?ISBN=0%2D201%2D63337%2DX&ptype=0

Exemples du livre : ftp://ftp.scriptics.com/pub/tcl/doc/book.examples.Z

Compl�ments au livre : http://www.scriptics.com/doc/tk4.0.ps

Cet ouvrage couvre � l'origine Tcl 7.3 et Tk 3.6.

Practical Programming in Tcl and Tk, deuxi�me �dition

Auteur : Brent Welch

Information sur le WWW � propos de l'ouvrage : http://www.beedub.com/book/

Table des mati�res : http://www.beedub.com/book/

Publicit� du livre � la section_50000.html de l'URL http://www.borders.com/sections/

Cette �dition r�vis�e d�crit Tcl/Tk 8.0 tel qu'il �tait dans sa p�riode beta. Les ajouts par rapport � la premi�re �dition concernent les sockets, les paquetages, les contextes (namespaces), et une longue section d�crivant les changements dans Tcl 7.4, 7.5, 7.6 et 8.0 (et Tk �galement), Safe Tk, et le Plugin.

Tcl and Tk Reference Manual

Editeurs : Marc Ewing, Erik Troan

Information sur le WWW � propos de l'ouvrage : http://www.lsl.com/catalog/books/tcltk/

The Visual TCL Handbook, 1/e

Auteur : David Young

Information sur le WWW � propos de l'ouvrage : http://www.amazon.com/exec/obidos/ASIN/013461674X/qid%3D932034805/002-8225427-0056632

Un guide complet sur Visual TCL. Ce livre m�ne le lecteur des concepts de base du d�veloppement d'interfaces graphiques utilisateur jusqu'� des d�veloppements d'applications significatifs. Le livre se concentre sur les extensions TCLX et VT, �voquant beaucoup de sujets fondamentaux pour TCL. VT est une interface graphique bas�e sur Motif, incompatible avec Tk. L'int�gralit� du langage TCL est document�e dans une section Commands s�par�e. Il inclut un CD-ROM avec les versions SGI, Solaris, HP-UX, AIX et Unixware de Visual Tcl.

Running Linux

Auteur : Matt Welsh et Lar Kaufman

Information sur le WWW � propos de l'ouvrage : http://www.ora.com/catalog/runux2/noframes.html

(NdT : La version fran�aise de cet ouvrage est intitul�e "Le Syst�me Linux", aux �ditions O'Reilly. Cette adaptation fran�aise de Ren� Cougnenc a �t� r�vis�e, pour la deuxi�me �dition, par Manuel et Nat Makar�vitch. Voir http://www.editions-oreilly.fr/sysad/runux2.html.

La 3�me �dition originale doit sortir en ao�t 1999. Voir http://www.ora.com/catalog/runux3/noframes.html. Il faudra attendre un peu pour la version fran�aise).

C'est un livre de base vraiment bien �crit. Il contient un chapitre sur la programmation en Tcl/Tk (ainsi que Perl, C, C++).

Tcl/Tk for Dummies (Pour les Nuls)

Auteur : Timothy Webster, with Alex Francis

Information sur le WWW � propos de l'ouvrage : http://www.dummies.com/

Un autre livre dans la s�rie des livres de programmation. Celui-ci se concentre sur le plugin Tcl comme environnement de programmation.

Interactive Web Applications With Tcl/Tk

Auteurs : Michael Doyle, Hattie Schroeder

Information sur le WWW � propos de l'ouvrage : http://www.eolas.com/tcl/

C'est un livre d'apprentissage par l'exemple, pour les personnes qui savent un peu programmer sans �tre experts. Il couvre le d�veloppement d'applets comme applications autonomes et des applications serveurs simples. Il est fourni avec la bo�te � outils Spynergy, qui ajoute diverses proc�dures en pur Tcl/Tk pour le traitement distribu�, la r�cup�ration d'URL, la g�n�ration de HTML, la gestion de bases de donn�es et la gestion transparente de fichiers quelle que soit la plate-forme, un �diteur de Tcl, Ed, et un environnement de test, un outil de conversion d'image, une d�monstration des fonctionnalit�s de Tk, une version client/serveur d'une application rolodex, un serveur web en Tcl pur, une application de push en client/serveur, un navigateur web en Tcl.

8.2 Manuels en ligne et tutoriels

8.3 Sites World Wide Web

Il existe de nombreuses ressources WWW qui offrent des informations compl�mentaires sur beaucoup d'aspects de Tcl et de ses extensions.

8.4 Autres documents & Foires Aux Questions

Beaucoup de mati�re est disponible sur l'Internet : papiers introductifs, papiers blancs, tutoriels, transparents, versions PostScript de brouillons d'ouvrages publi�s, et bien d'autres choses.

Pour une r�f�rence compl�te, veuillez s'il vous pla�t jeter un oeil � l'excellente FAQ Tcl .

8.5 Forum Usenet

comp.lang.tcl est un groupe de discussion non mod�r�, cr�� pour les �changes sur le langage de programmation Tcl et les outils qui utilisent Tcl sous une forme quelconque, tels que la bo�te � outils Tk pour le syst�me X Window, le Tcl �tendu, et expect.

(NdT : le forum �quivalent dans la hi�rarchie francophone fr.* est fr.comp.lang.tcl).

Pour les annonces relatives � Tcl/Tk, regardez toujours comp.lang.tcl.announce : vous y trouverez les annonces de versions finales, de patchs, de nouvelles applications, etc.

Je pr�cise � nouveau que la FAQ se trouve � FAQ Tcl.

9. Termes de la licence de Tcl/Tk

Les termes suivants s'appliquent � toutes les versions diffus�es de la base de Tcl/Tk, au plug-in Tcl/Tk navigateur version 2.0, et � TclBlend et Jacl version 1.0. Veuillez noter que les outils TclPro sont sous une autre licence. La pr�sente licence est incluse dans les distributions standard de Tcl/Tk en tant que fichier "licence.terms".

LICENCE DE TCL/TK

Ce logiciel est sous copyright des R�gents de l'Universit� de Californie, Sun Microsystems, Inc., Scriptics Corporation, et autres parties. Les termes suivants s'appliquent � tous les fichiers associ�s au logiciel � moins que ce ne soit explicitement mentionn� dans les fichiers individuellement.

Les auteurs accordent ici la permission d'utiliser, copier, modifier, distribuer, et placer sous licence ce logiciel et sa documentation dans n'importe quel but, pour autant que les notes de copyright existantes soient conserv�es dans toutes les copies et que la pr�sente note soit incluse telle quelle dans toute diffusion. Aucun accord �crit, licence ou droit d'auteur n'est requis pour un usage autoris�. Les modifications de ce logiciel devraient �tre plac�es sous copyright par leurs auteurs et ne n�cessitent pas de suivre les termes de la licence d�crits ici, pour autant que les nouveaux termes soient clairement indiqu�s sur la premi�re page de chaque fichier sur lequel ils s'appliquent.

EN AUCUN CAS LES AUTEURS OU DISTRIBUTEURS NE POURRONT ETRE TENUS POUR RESPONSABLES DE DOMMAGES DIRECTS, INDIRECTS, PARTICULIERS, ACCIDENTELS OU COLLATERAUX PROVOQUES PAR L'UTILISATION DE CE LOGICIEL, DE SA DOCUMENTATION, OU QUELCONQUES CONSEQUENCES DE CECI, MEME SI LES AUTEURS ONT ETE AVERTIS DE LA POSSIBILITE DE CES DOMMAGES.

LES AUTEURS ET DISTRIBUTEURS SE DEGAGENT PRECISEMENT DE TOUTES GARANTIES, INCLUANT, MAIS PAS EXCLUSIVEMENT, LA GARANTIE IMPLICITE DE COMMERCIALISABILITE, L'ADEQUATION A UN BUT PARTICULIER, ET LA NON-CONTREFACON. CE LOGICIEL EST FOURNI « TEL QUEL », LES AUTEURS ET DISTRIBUTEURS N'ONT AUCUNE OBLIGATION DE MAINTENANCE, SUPPORT, MISE A JOUR, EXTENSIONS, OU MODIFICATIONS.

UTILISATION GOUVERNEMENTALE : Si vous acqu�rez ce logiciel pour le compte du gouvernement am�ricain, le gouvernement n'aura que des droits restreints sur le logiciel et la documentation associ�e, tel qu'il est d�fini dans les lois f�d�rales sur l'acquisition (Federal Acquisition Regulations - FARs) � la clause 52.227.19 (c) (2). Si vous acqu�rez ce logiciel pour le compte du minist�re de la d�fense (Department of Defense, DoD), le logiciel sera class� comme logiciel commercial (Commercial Computer Software) et le gouvernement n'aura que des droits restreints, tel que d�fini dans la clause 252.227-7013 (c) (1) des DFARs. Nonobstant ce qui pr�c�de, les auteurs accordent au gouvernement am�ricain et aux personnes agissant en son nom la permission d'utiliser et de distribuer le logiciel selon les termes sp�cifi�s dans la pr�sente licence.