
              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 dcrit l'approche de Linux  Tcl, un langage de script.
   C'est un langage interprt, facile  apprendre, qui utilise l'absence
   de typage pour permettre un niveau de programmation plus lev et le
   dveloppement rapide d'applications. La bote  outils Tk est un
   environnement de programmation pour crer des interfaces graphiques
   (Graphical User Interfaces, GUI) sous le systme X-Window. Leurs
   fonctionnalits incluent la possibilit d'extension et l'inclusion
   dans une autre application, le dveloppement rapide et la facilit
   d'utilisation. Conjointement, Tcl et Tk apportent de grands bnfices
    la fois au dveloppeur et  l'utilisateur. Les interfaces bases sur
   Tk ont tendance  tre plus personnalisables et dynamiques que celles
   construites avec une bote  outils reposant sur du C ou C++. Tk
   reproduit l'allure et les sensations de Motif. Un grand nombre
   d'applications intressantes sous X sont entirement implmentes en
   Tk, sans aucune nouvelle commande spcifique  l'application
   elle-mme. _
     _________________________________________________________________

1. Introduction

   Ceci est le Linux Tcl et Tk HOWTO. Il vise, en tant que rfrence pour
   Linux,  couvrir tout ce qu'il est ncessaire de connatre concernant
   l'installation, la configuration, ainsi qu'une introduction au
   dveloppement sous Tcl et Tk. Il prsente d'abord un historique, puis
   aborde les avantages et inconvnients de Tcl et Tk sous linux, et
   enfin des rfrences  d'autres sources d'information sur une large
   tendue de sujets lis  ce langage de script simple mais puissant.

   Si vous avez dj 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.

   Aprs l'excution de la premire tape de la recompilation du noyau,
   un script appel kconfig.tk est excut via wish (l'interprteur Tcl).
   La fentre de configuration du noyau Linux apparat. Au lieu de
   rpondre  des questions en srie, cet utilitaire de configuration
   bas sur X vous permet d'utiliser des cases  cocher pour slectionner
   les options du noyau que vous souhaitez activer.

   Le systme conserve les options de votre dernire configuration afin
   qu' chaque nouvelle excution vous n'ayiez  ajouter/supprimer
   quelques slections 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 prfrez. Aprs cette tape
   simplifie, vous pouvez recompiler votre noyau, en suivant la manire
   traditionnelle.

   Il existe en fait un autre exemple bien connu. Avez-vous dj 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 agrablement russi  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-mme se charge de mettre en place les services en
   crant le rpertoire 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 rgler les marges), propose une aide en ligne et plein d'autres
   caractristiques.

   Quelle est la diffrence avec une autre implmentation de service
   d'impression ?

   Tout est ralis en utilisant Tcl/Tk comme une  colle  entre
   applications consolides et en oprant avec les fichiers de
   configurations standards de Linux, dans un mode fentr, visuel et
   interactif, sous X-Window. Aucune nouvelle commande spcifique 
   l'application n'a t crite.

1.1 But de ce document

   Actuellement, le but de ce document est de fournir des rfrences de
   dpart 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 rfrence pour le dveloppement et la
   programmation en Tcl et Tk - c'est juste un point de dpart pour les
   utilisateurs de Linux.

   La conception que l'auteur se fait d'un manuel de rfrence concide
   avec la dfinition 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 installs sur votre
   machine Linux. Vous pourrez accder aux pages de manuel de Tcl/Tk par
   la commande man.

   Beaucoup de tutoriels de programmation complets et structurs ont t
   crits dans le but de laisser l'utilisateur dbutant trafiquer avec
   Tcl/Tk ; des tonnes d'autres donnes sont disponibles sur Internet.
   M'inspirant de la philosophie de Tcl/Tk, je ne vais pas rinventer la
   roue, mais essayer de cimenter cette norme masse d'information dj
   disponible.

   Je vous suggre de jeter un oeil aux autres documents cits dans la
   section Rfrences pour savoir o trouver des informations spcifiques
    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 trs simple.
   Basiquement, vous avez besoin de bien connatre :
     * des concepts simples de programmation ;
     * l'utilisation de commandes et d'utilitaires trs usuels d'unix ;
     * l'accs  Internet ;
     * l'utilisation de ftp.

1.3 Nouvelles versions de ce document

   Les versions plus rcentes de ce document seront tlcharges 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
   franaise :

   Archive des HOWTO franais sur LIP6

   Archive des HOWTO franais chez Freenix)

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

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

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

1.4 Historique des rvisions

     * _Version 0.1_ : 28 Octobre 1998 - premire version ;
     * _Version 0.2_ : 07 Novembre 1998 - profonds changements de style
       et rajeunissement.

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 plat
   envoyez-les moi ( Luca Rossetti), et j'essaierai de les inclure dans
   la version suivante.

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

   J'ai la volont de rpondre aux questions d'ordre gnral  propos de
   Tcl/Tk et de Linux du mieux que je peux. Avant tout, lisez s'il vous
   plat toutes les informations contenues dans ce HOWTO, et envoyez-moi
   un message dtaill sur le problme rencontr.

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

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

1.6 Crdits

   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), spcialement 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 sr il est considr sans garantie ; sans mme la garantie
   sous-jacente de commercialisabilit ou d'adquation  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 dtails.

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'implmenter  son retour 
   Berkeley au printemps 1988 ; ds 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

     * _1989 :_ premires diffusions externes de Tcl et dbut de
       l'implmentation de Tk ;
     * _1991 :_ premire version de Tk ;
     * _1994 :_ le Dr. Ousterhout est employ par Sun Microsystems,
       Inc. : il se distingue comme ingnieur et dirige le projet Tcl.
     * _Avril/Mai 1997 :_ Le groupe de recherche responsable chez Sun du
       dveloppement de Tcl est dplac dans une filiale de Sun appele
       SunScript. Cependant les choses ont chang  nouveau rapidement.
       Vous pouvez lire les dtails de cette volution en choisissant
       "SunScript_story"  l'URL : SunScript-Story ;
     * _Aot 1997 :_ un consortium Tcl est cr. Vous pouvez en lire
       davantage, notamment comment en faire partie, qui est actuellement
       dans le conseil d'administration, etc. en visitant Tcl
       Consortium ;
     * _Fvrier 1998 :_ le Dr. Ousterhout quitte Sun pour fonder
       Scriptics, une entreprise ddie aux outils, applications et
       services d'criture de scripts. Selon
       http://www.scriptics.com/about/news/qa.html, le coeur de Tcl/Tk
       reste libre, avec l'quipe de Sun qui continue actuellement son
       travail sur Tcl/Tk 8.1. Aprs la prochaine version, il est prvu
       que ce travail sur la base de Tcl/Tk migre de Sun  Scriptics, et
       que l'quipe de Sun se concentre davantage sur les extensions et
       applications de Tcl.
     * _23 Avril 1998 :_ L' ACM (Association for Computing Machinery)
       dcerne le prix du logiciel 1997 (Software System Award)  John
       Ousterhout et Scriptics ( http://www.acm.org/awards/). Cette
       rcompense est attribue  une institution ou une personne
       reconnue pour avoir dvelopp un logiciel qui a eu une influence
       durable, remarque par des contributions  des concepts ou par un
       plbiscite commercial, ou les deux.

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 bibliothque.

   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 dbogueurs et des interprteurs shell. Il possde une
   syntaxe simple et il est lui-mme programmable : les utilisateurs de
   Tcl peuvent en effet crire des procdures pour crer des commandes
   plus puissantes que celles que fournies par l'ensemble pr-construit.

   D'autre part, Tcl est un paquetage bibliothque intgrable dans des
   applications. La bibliothque Tcl est constitue d'un analyseur
   syntaxique du langage Tcl, de routines implmentant les commandes
   pr-dfinies de Tcl, et de procdures permettant  chaque application
   d'ajouter  Tcl des commandes additionnelles qui lui sont spcifiques.
   Le programme applicatif gnre des commandes Tcl et les passe 
   l'analyseur syntaxique de Tcl pour l'excution.

   Les commandes peuvent tre gnres en lisant des caractres sur une
   source en entre ou bien en associant des chanes de caractres avec
   des lments de l'interface utilisateur de l'application, comme des
   boutons, des entres de menus, ou d'autres widgets (NdT : widget =
   Window Gadget, lment de fentre). Lorsque la bibliothque Tcl reoit
   une commande, elle analyse les champs qui la composent et excute
   directement les commandes pr-dfinies.

   Pour les commandes implmentes par l'application, Tcl rappelle
   l'application pour excuter les commandes. Dans bien des cas, les
   commandes lanceront des appels rcursifs  l'interprteur Tcl en
   passant des chanes optionnelles  excuter (en fait les procdures et
   commandes de bouclage conditionnel fonctionnent toutes de cette
   manire). Un programme d'application peut tirer de nombreux avantages
   de l'utilisation de Tcl comme langage de commande :
     * Tcl fournit une syntaxe standard : une fois que les utilisateurs
       connaissent Tcl, ils seront capables de passer facilement des
       commandes  n'importe quelle application base sur Tcl.
     * Tcl parvient  une bonne  programmabilit . Tout ce qu'une
       application ncessite est l'implmentation de quelques commandes
       spcifiques de bas niveau. Tcl fournit de nombreuses commandes
       utilitaires et une interface gnrique de programmation pour
       construire des procdures de commande complexes. En utilisant Tcl,
       les applications ne ncessitent pas de rimplmentation de ces
       caractristiques.
     * Les extensions  Tcl, telles que la bote  outils Tk, fournissent
       des mcanismes pour la communication entre applications, en
       envoyant des commandes Tcl dans un sens et dans l'autre. La
       structure commune du langage Tcl rend plus aise la communication
       entre applications.

   Il est important de noter que Tcl a t conu en pensant que le
   programmeur devrait en fait utiliser deux langages ou plus lorsqu'il
   construit un systme logiciel de taille consquente : un pour
   manipuler des structures de donnes internes complexes, et l o la
   performance est cruciale, et un autre, comme Tcl, pour crire de trs
   courts scripts qui assemblent les autres morceaux, en fournissant des
   possibilits 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 possibilits de structures de donnes complexes et
   d'algorithmes.

   Tcl a t construit pour tre aisment inclus dans un langage de plus
   bas niveau lorsqu'on rencontre des tches pour lesquelles un langage
   de plus bas niveau est plus adquat. Ainsi, les fonctionnalits de
   base peuvent rester petites et chacun a seulement besoin d'ajouter les
   morceaux qu'il veut ou doit avoir.

   Une rponse  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 systme de fentrage X11. Il est 
   noter que Tk a t compil avec succs 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 fentrage simple qui permet 
   l'utilisateur d'crire des applications Tcl/Tk dans un environnement
   de prototypage.

   Jusqu' prsent, Tcl/Tk ne supporte pas de fontes pour les langues
   japonaise, chinoise, corenne,...

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 ncessitent bien videmment un interprteur Tcl tendu.
   De plus, de nombreuses applications Tcl libres ncessitent une
   extension particulire 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 complte des extensions de Tcl/Tk peut tre trouve  l'URL
   http://www.scriptics.com/resource/software/extensions/.

3.4 Plates-formes supportes

   Cette section contient des informations  propos de Tcl 8.0 et Tk 8.0,
   versions les plus rcentes de Tcl/Tk. Elles sont sorties le 18 aot
   1998 et le patch le plus rcent (8.0.3) date du 3 septembre 1998.

   Quand vous tldchargez Tcl et Tk, vous rcuprez deux programmes,
   wish et tclsh, les bibliothques supportant les scripts, et la
   documentation en ligne. Ces programmes supportent des plates-formes
   gnriques de dveloppement d'applications en Tcl. Wish inclut la
   bote  outils pour interface graphique utilisateur Tk. Les paquetages
   sont prts  tre utiliss aprs l'installation.

   Tcl 8.0 et Tk 8.0 fonctionnent sur la plupart des versions des
   systmes d'exploitation suivants :

     * Windows 95
     * Windows NT
     * Solaris et SunOS
     * Linux
     * HP-UX
     * SGI
     * IRIX
     * Digital Unix
     * AIX
     * SCO Unix
     * La plupart des autres systmes d'exploitation voisins d'UNIX pour
       Macintosh (68K et Power Mac)
     * Des versions pr-compiles sont disponibles pour diverses
       distributions de Linux.

4. Installation et prise en main de Tcl et Tk

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

   Une installation standard d'une distribution rcente inclura Tcl/Tk
   puisque c'est un prrequis de nombreux utilitaires de configuration
   qui tournent principalement sous X.

   Tcl et Tk sont distribus 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 complte).

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

4.1 Tldchargement des distributions de base

   La base de Tcl/Tk se constitue des bibliothques Tcl et Tk, plus les
   applications wish et tclsh, la documentation associe, des
   bibliothques de scripts et des applications de dmonstration. Le site
   FTP primaire pour ces donnes 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 dj disponible en paquetages propritaires
   pour votre distribution, vous souhaiterez tldcharger le version
   code source. Vous aurez besoin des sources de Tcl comme de Tk. La
   procdure suivante se rfre  ce second cas :

   Choisissez entre le format tar et le format tar gzipp.

   Fichiers Tar compresss

   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 gzipps

   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 rcuprez 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 gnralement plus petits que les .Z).

   Pour dcompresser la distribution, lancez des commandes shell comme
   celles-ci, selon la version que vous avez rcupre :
     _________________________________________________________________

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 cre un rpertoire appel tcl8.0.3, qui
   contient les sources pour toutes les plates-formes, la documentation,
   et les bibliothques de script pour Tcl 8.0. Pour compiler et
   installer la distribution, suivez les instructions du fichier README
   dans le rpertoire de la distribution. Assurez-vous de compiler Tcl
   avant Tk, puisque Tk dpend 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 donnes
   et d'accs rseau, un constructeur d'interfaces graphiques
   utilisateur, le programme expect, des widgets Tk supplmentaires, 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 donnes du site de base et de l'archive de contributions ;
   vous trouverez peut-tre plus pratique de prendre des donnes 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 ?

   Rfrez-vous toujours  la dernire version recommande dans la
   section  Tcl/Tk Core  de Scriptics Software Central page.

   A l'heure o j'cris, les versions recommandes sont les dernires
   (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 acclre
   l'excution d'un facteur 2  10. Il fournit aussi des contextes de
   dnomination (namespaces), des entres/sorties binaires et plusieurs
   nouvelles caractristiques.

   Tk 8.0 est la premire 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 mcanisme de
   fonte portable. Tcl 8.0 et Tk 8.0 offrent tous deux des
   fonctionnalits supplmentaires au modle de scurit Safe-Tcl.

4.6 O adresser des rapports de problmes, bugs, ou amliorations

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

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

   Une alternative consiste  envoyer problmes, suggestions, ides
   nouvelles, etc. directement  l'auteur. Un email  John Ousterhout
   permet de le contacter.

   Lorsque vous rendez compte de problmes ou de bugs, veillez 
   mentionner tous les dtails ncessaires  un diagnostic correct.
   Basiquement, vous devez dcrire votre matriel, votre systme
   d'exploitation et la version de Tcl/Tk utilise, prciser 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
   problme.

   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 thse, un projet, ou mme une annonce commerciale,
   faites-le savoir aux personnes susceptibles d'tre intresses.

   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 exprience.

   Pour poster sur le forum comp.lang.tcl.announce, envoyez un email
   dtaill  tcl-announce. N'hsitez 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 interprt, pour excuter un programme Tcl
   (qu'on appelle galement un script) vous passez normalement le fichier
    l'interprteur 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 interprteur 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 crer 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'interprteur wish. Ce programme applicatif compil est
   vritablement, du point de vue de Tcl, une nouvelle version de
   l'interprteur wish, avec les nouvelles commandes en C lies dedans.
   Bien sr, le programme peut tre bien plus qu'un simple interprteur
   Tcl. (Note : vous pouvez aussi utiliser la capacit de chargement
   automatique de Tcl sur les systmes 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 implmente comme si c'tait une fonction C, qui prend en
   charge tous les arguments.

   Voici un exemple trs bateau, le clbre 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 manire
   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
   prcdent, 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'accs).

   Rendez le fichier Hello excutable, par un :
     _________________________________________________________________

chmod 775 Hello
     _________________________________________________________________

   et lancez-le sous X.

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

6. Langage de script : avantages et inconvnients

   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 systme (dans des langages comme le C et le
   Java).

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

   Voici un rsum des principaux avantages et inconvnients de Tcl/Tk.

6.1 Reproches les plus courants  propos de Tcl

  Tcl est interprt

   Les donnes sont traites de manire primaire comme des chanes de
   caractre, les programmes crits en Tcl sont lents. Tcl 8.0 essaie de
   pallier ceci en compilant  un certain degr ainsi qu'en autorisant
   diffrents types de variables.

  Plusieurs caractristiques ne sont pas intuitives

   Les commentaires sont des commandes plutt que de vrais commentaires,
   les nombres commenant par 0 sont en octal, l'utilisation correcte des
   guillemets, etc. Ces aspects sont abords 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
   gnral, 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 cot rduit.

   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 sr), Windows et
   Macintosh. Exceptes quelques diffrences entre plates-formes, vos
   scripts Tcl fonctionneront de la mme manire sur tous les systmes.

  Il est interprt

   Vous pouvez excuter directement votre code sans compilation ni
   dition de liens (mme 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'interprteur 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 crateur de la base Tcl et Tk dit  ce sujet :
   www.scriptics.com/Y2K.html .

7. Programmes les plus clbres utilisant Tcl/Tk

   A part les deux implmentations dcrites dans l'Introduction, de
   nombreuses applications sont crites en Tcl/Tk ou une combinaison de
   Tcl et de C. Une liste complte de ces implmentations figure  la
   partie 4 de la Foire Aux Questions sur Tcl/Tk (FAQ). Je vous suggre
   de visiter Scriptics' Software Central.

   Un autre bon point de dpart est http://www.NeoSoft.com/tcl/.

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

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

8. Rfrences

   Pour de nombreuses raisons, les gens prfrent souvent avoir un manuel
   papier comme rfrence ou aiment tre aids en ligne par d'autres
   personnes connectes.

   Vous pouvez trouver dans cette section une slection de livres de
   rfrence, de tutoriels, de sites www et forums Usenet.

8.1 Livres

   Beaucoup de livres concernant Tcl/Tk ont t crits et vont tre
   publis. Je ne vais pas essayer de tous les rpertorier (_un autre
   howto n'y suffirait pas_ :) ). Vous trouverez davantage d'informations
   et des notes complmentaires  :
     * www.tclconsortium.org/books/index.vet
     * www.amazon.com/exec/obidos/subst/categories/computer-programming/t
       cl-tk-article/002-8989352-4516417
     * Page : tcl_books.html  l'URL starbase-neosoft-tcl-books

   Je vais essayer ici de rsumer 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

   Complments 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, deuxime dition

   Auteur : Brent Welch

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

   Table des matires : http://www.beedub.com/book/

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

   Cette dition rvise dcrit Tcl/Tk 8.0 tel qu'il tait dans sa
   priode beta. Les ajouts par rapport  la premire dition concernent
   les sockets, les paquetages, les contextes (namespaces), et une longue
   section dcrivant 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 mne le lecteur des concepts
   de base du dveloppement d'interfaces graphiques utilisateur jusqu'
   des dveloppements 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 base sur Motif,
   incompatible avec Tk. L'intgralit du langage TCL est documente dans
   une section Commands spare. 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 franaise de cet ouvrage est intitule "Le Systme
   Linux", aux ditions O'Reilly. Cette adaptation franaise de Ren
   Cougnenc a t rvise, pour la deuxime dition, par Manuel et Nat
   Makarvitch. Voir http://www.editions-oreilly.fr/sysad/runux2.html.

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

   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 srie 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 dveloppement
   d'applets comme applications autonomes et des applications serveurs
   simples. Il est fourni avec la bote  outils Spynergy, qui ajoute
   diverses procdures en pur Tcl/Tk pour le traitement distribu, la
   rcupration d'URL, la gnration de HTML, la gestion de bases de
   donnes 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 dmonstration des fonctionnalits 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

     * John Ousterhout a crit un guide dans un style ingnierie, qui
       dcrit le codage, la documentation et les conventions de test en
       usage chez Sun pour le codage de la base en C de Tcl, et l'a mis 
       disposition des autres dveloppeurs Tcl/Tk. Il se trouve 
       ftp://ftp.scriptics.com/pub/tcl/doc/engManual.tar.Z
     * Un second guide, couvrant l'criture de scripts Tcl, peut tre
       rcupr  ftp://ftp.scriptics.com/pub/tcl/doc/styleGuide.tar.gz.
     * A brief introduction to TCL/TK par David Martland .
     * Un autre tutoriel intitul User interfaces with Tcl/Tk a t crit
       par Fintan Culwin .
     * Mme si vous devriez avoir les pages de manuel de Tcl/Tk sur votre
       systme, voici un autre endroit o chercher : TCL Manual Pages
       (from TCL7.4)-Tk Manual Pages (from TK4.0).
     * The Tcl/Tk Cookbook fournit beaucoup d'informations pour dbuter.

8.3 Sites World Wide Web

   Il existe de nombreuses ressources WWW qui offrent des informations
   complmentaires sur beaucoup d'aspects de Tcl et de ses extensions.
     * Rfrez-vous  la FAQ-Tcl (partie 2) pour des liens en quantit
       vers de la documentation Tcl/Tk et des sites web.
     * Lancez votre navigateur web sur Tcl/Tk Information : un site avec
       beaucoup de liens vers des ressources Tcl/Tk sur le web
       (informations, Extensions, Outils, Entranement et Evnements).
     * Jetez un oeil  Tcl-Consortium : une organisation  but
       non-lucratif pour promouvoir Tcl/Tk et soutenir la communaut des
       dveloppeurs.
     * Allez naviguer  l'Archive Officielle des Sources des
       Contributions pour le Tool Command Language (TCL) et la bote 
       outils Tk, hberge par Neosoft, Inc.
     * Pour une discussion  propos du pour et du contre des principaux
       langages de script : article paru dans SunWorld, par Cameron Laird
     * Une page web qui contient diverses comparaisons entre Tcl/Tk et
       d'autres systmes similaires. La plupart d'entre elles sont tires
       de "comp.lang.tcl", l'auteur serait heureux d'ajouter tout article
       important que vous, oui vous !, voudrez lui envoyer : Comparaison
       par Wayne Christopher.
     * Le cours de Tcl/Tk de E.J. Friedman-Hill's : ce document est
       disponible seulement sous forme PowerPoint et en HTML de basse
       qualit (en format HTML, toutes les figures et une partie du texte
       sont manquantes).

8.4 Autres documents & Foires Aux Questions

   Beaucoup de matire est disponible sur l'Internet : papiers
   introductifs, papiers blancs, tutoriels, transparents, versions
   PostScript de brouillons d'ouvrages publis, et bien d'autres choses.

   Pour une rfrence complte, veuillez s'il vous plat jeter un oeil 
   l'excellente FAQ Tcl .

8.5 Forum Usenet

   comp.lang.tcl est un groupe de discussion non modr, cr pour les
   changes sur le langage de programmation Tcl et les outils qui
   utilisent Tcl sous une forme quelconque, tels que la bote  outils Tk
   pour le systme X Window, le Tcl tendu, et expect.

   (NdT : le forum quivalent dans la hirarchie 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 prcise  nouveau que la FAQ se trouve  FAQ Tcl.

9. Termes de la licence de Tcl/Tk

   Les termes suivants s'appliquent  toutes les versions diffuses 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 prsente 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 Rgents de l'Universit de
   Californie, Sun Microsystems, Inc., Scriptics Corporation, et autres
   parties. Les termes suivants s'appliquent  tous les fichiers associs
   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 conserves dans toutes les copies et que la prsente
   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 places sous copyright
   par leurs auteurs et ne ncessitent pas de suivre les termes de la
   licence dcrits ici, pour autant que les nouveaux termes soient
   clairement indiqus sur la premire 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 acqurez ce logiciel pour le
   compte du gouvernement amricain, le gouvernement n'aura que des
   droits restreints sur le logiciel et la documentation associe, tel
   qu'il est dfini dans les lois fdrales sur l'acquisition (Federal
   Acquisition Regulations - FARs)  la clause 52.227.19 (c) (2). Si vous
   acqurez ce logiciel pour le compte du ministre de la dfense
   (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 dfini dans la clause 252.227-7013
   (c) (1) des DFARs. Nonobstant ce qui prcde, les auteurs accordent au
   gouvernement amricain et aux personnes agissant en son nom la
   permission d'utiliser et de distribuer le logiciel selon les termes
   spcifis dans la prsente licence.
