logo

Tcl/Tk

Si vous n'avez pas encore installé Tcl/Tk sur votre machine, faites le vite ! C'est un logiciel comme les autres mais qui encombre vraiment peu le disque dur, sait se faire oublier et ressort quand on a besoin de lui ! Vous ne trouverez pas ici plein d'adresses ou des informations de spécialiste (je n'en suis pas un). Je vais juste essayer de vous expliquer ce que j'aime dans Tcl/Tk.
Cette rubrique est toute neuve, j'y ajouterai des informations dans les mois qui viennent, mais sans chercher à concurrencer les milliers de sites existants.

Sommaire

 Installation Installation de Tcl/Tk sur une machine
Installation d'un package
 Informations techniques Historique de Tcl/Tk (simplifié!)
Notion de package
(à faire) Notion de namespace
Les extensions que j'utilise
Mes utilitaires en Tk
(à faire) Tk par l'exemple

Installation

Tcl/Tk est disponible presque sur tous les miroirs FTP du monde. J'en donne quelques adresses à la fin. La version la plus stable actuellement est la version 8.0. Il existe une version 8.1 en cours de tests.

Si vous utilisez Windows 95 ou NT, Solaris, ou un MacIntosh, les versions sont auto-installables (et désinstallables) comme tous les logiciels dignes de ce nom.
Sur d'autres systèmes, comme Linux, il faut regénérer le produit à partir des sources, mais des milliers de gens l'ont fait sans problème. Sous Windows, après installation, l'activation (double-clic) d'un fichier ayant l'extension tcl lancera l'exécution du fichier. Sur les autres systèmes, il faudra passer par l'appel du programme wish. C'est bien expliqué dans la documentation.



Qu'est-ce que Tcl/Tk ?

Présentation

Tcl est un langage créé au début des années 90 par John Ousterhout, un universitaire. Les principes qui ont guidé sa conception sont la modularité et l'extensibilité du langage. Pour prouver ses dires, il a inventé dans la foulée une extension de Tcl orientée IHM appelée Tk. En fait, c'est Tk qui a fait la popularité de Tcl/Tk.

Jusqu'à février, Tcl/Tk était maintenu par une équipe de Sun Microsystems conduite par John Ousterhout. SUN continue a soutenir Tcl/Tk, compagnon de JAVA dans sa stratégie logiciel. Mais John Ousterhout a désormais créé sa propre société (Scriptics) pour promouvoir son produit et commercialiser des solutions complètes (EDI, formations, ...).

Pour ceux qui aiment les comparaisons, celles-ci me paraissent assez correctes :

Langage de scriptLangage évolué
Shell UNIXC ou C++
VBscriptActive X
Javascript
ou TCLet
Java applet

Ressources nécessaires

Tcl/Tk est disponible sur la majorité des machines et systèmes d'exploitation dans le monde. Pour plus de détails sur ce sujet, voyez ici

Caractéristiques

Avantages

Inconvénients

Extensions

Tcl a été conçu pour que son langage soit étendu. Il y a une énorme production d'extensions dans le monde. Je connais trois manières dont celà est fait, et cela conditionne en général la portabilité et le degré d'utilisation immédiate de ces extensions.

Cette classification est toute personnelle, je ne suis pas sûr qu'elle corresponde à quelque chose de réel.

TypeDescriptionPortabilité
Extensions statiques Il s'agit d'une sorte de patch, qui permet d'obtenir une version améliorée de Tcl/Tk après recompilation.

Exemple célèbre : TIX, qui fournit un nouveau shell graphique tixwish pour remplacer wish.

Pour des widgets IHM, Tk fournit une interface standard à respecter qui favorise la portabilité.
Extensions dynamiques C'est un mécanisme de chargement automatique de fonctions au fur et à mesure du besoin. La seule chose nécessaire, c'est la présence dans le chemin de recherche (variable auto_path) d'un fichier tclIndex contenant la liste des fonctions disponibles et le nom des fichiers où elles sont définies. Le fichier tclIndex est généré par la fonction tk_mkIndex.

Exemple : les fonctions du fichier jldb.tcl utilisé dans TkImgMap.

Dépend de la manière dont est implémentée l'extension.
  • Si c'est une fonction Tcl : portabilité totale.
  • Sinon, l'extension est une bibliothèque dynamique, donc un binaire, avec les problèmes de portabilité classiques.
Packages

plus d'infos
C'est une évolution récente des extensions dynamiques. Les différences que j'y vois sont les suivantes :
  • gestion du numéro de version ; plusieurs packages dans des versions différentes peuvent cohabiter. Un logiciel dit quelles versions de package il tolère.
  • Il existe une position privilégiée pour installer les packages, ce qui permet de mettre un peu d'ordre dans l'installation de Tcl/Tk.
  • Un package peut être fourni sous forme de binaire.

Exemple célèbre : le package IMG de gestion d'images de formats variés.

Pas de changement par rapport à l'ancienne version des extensions dynamiques.

Mon avis sur Tcl/Tk...

Tcl/Tk, par sa facilité d'utilisation, change réellement le processus de développement. Je comprends que beaucoup de gens s'y mettent. En ce qui me concerne, jusqu'à présent, j'utilisais le Borland C++ pour tous mes développements sous Windows. J'utilise de plus en plus Tcl/Tk pour de petites IHM, et j'envisage sérieusement JAVA pour les traitements et applications plus importantes, pour ne pas perdre tous mes développements en C++, et pour pouvoir passer sous peu à Linux.

Eh oui, tant Tcl/Tk que Java sont indépendants du système d'exploitation !

Des adresses...

Home page de Scriptics (issue de Sun Microsystems) qui distribue et fait vivre le produit.

Home page de TIX qui fournit gratuitement aux particuliers des extensions IHM très appréciables. Une documentation en ligne et un guide du programmeur sont fournis.

Jussieu, un des innombrables miroirs où on peut trouver les sources et les binaires de Tcl et Tk.


Get Back Retour à la page informatique Ecrire a AnkiF:

Date de dernière mise à jour : 19/11/1999