Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > ebac5394abc62d2e0b61505bfba9712a > files > 210

howto-text-fr-2006-5mdv2010.0.noarch.rpm


              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 :
     * des concepts simples de programmation ;
     * l'utilisation de commandes et d'utilitaires très usuels d'unix ;
     * l'accès à Internet ;
     * l'utilisation de ftp.

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

     * _Version 0.1_ : 28 Octobre 1998 - première 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 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

     * _1989 :_ premières diffusions externes de Tcl et début de
       l'implémentation de Tk ;
     * _1991 :_ première version de Tk ;
     * _1994 :_ le Dr. Ousterhout est employé par Sun Microsystems,
       Inc. : il se distingue comme ingénieur et dirige le projet Tcl.
     * _Avril/Mai 1997 :_ Le groupe de recherche responsable chez Sun du
       développement de Tcl est déplacé dans une filiale de Sun appelée
       SunScript. Cependant les choses ont changé à nouveau rapidement.
       Vous pouvez lire les détails de cette évolution en choisissant
       "SunScript_story" à l'URL : SunScript-Story ;
     * _Août 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 ;
     * _Février 1998 :_ le Dr. Ousterhout quitte Sun pour fonder
       Scriptics, une entreprise dédiée 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. Après la prochaine version, il est prévu
       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)
       décerne le prix du logiciel 1997 (Software System Award) à John
       Ousterhout et Scriptics ( http://www.acm.org/awards/). Cette
       récompense est attribuée à une institution ou une personne
       reconnue pour avoir développé un logiciel qui a eu une influence
       durable, remarquée par des contributions à des concepts ou par un
       plébiscite 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 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 :
     * Tcl fournit une syntaxe standard : une fois que les utilisateurs
       connaissent Tcl, ils seront capables de passer facilement des
       commandes à n'importe quelle application basée sur Tcl.
     * Tcl parvient à une bonne « programmabilité ». Tout ce qu'une
       application nécessite est l'implémentation de quelques commandes
       spécifiques de bas niveau. Tcl fournit de nombreuses commandes
       utilitaires et une interface générique de programmation pour
       construire des procédures de commande complexes. En utilisant Tcl,
       les applications ne nécessitent pas de réimplémentation de ces
       caractéristiques.
     * Les extensions à Tcl, telles que la boîte à outils Tk, fournissent
       des mécanismes 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 aisée la communication
       entre applications.

   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 :

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

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 à :
     * 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 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

     * John Ousterhout a écrit un guide dans un style ingénierie, qui
       décrit 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 développeurs 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
       récupéré à 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 .
     * Même si vous devriez avoir les pages de manuel de Tcl/Tk sur votre
       système, 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 débuter.

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.
     * Référez-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, Entraînement et Evénements).
     * Jetez un oeil à Tcl-Consortium : une organisation à but
       non-lucratif pour promouvoir Tcl/Tk et soutenir la communauté des
       développeurs.
     * Allez naviguer à l'Archive Officielle des Sources des
       Contributions pour le Tool Command Language (TCL) et la boîte à
       outils Tk, hébergée 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 systèmes similaires. La plupart d'entre elles sont tirées
       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 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.