Tcl ne dispose pas nativement de la programmation orientée objet. L'inclusion de la POO dans le noyau de Tcl est d'ailleurs un sujet de discussion récurrent au sein de la communauté des utilisateurs de ce langage. Les avis sont partagés principalement pour trois raisons:
Pour cette dernière raison, Tcl a accès à plusieurs extensions objets.
Extension | Mise en œuvre | Description du modèle |
---|---|---|
XOTcl | C | Définition dynamique des classes, métaclasses et des méthodes avec instrospection. Héritage simple et multiple. Agrégation dynamique d'objets, classes imbriquées, mixins, filtre conditionnel, slots. Influencé par CLOS, Smalltalk et Self. |
incr Tcl | C | Calqué sur le modèle objet du C++. Héritage multiple. Classes privées et publiques. |
OTcl | C | Définition dynamique des classes, méta-classes et des méthodes avec instrospection. Héritage simple et multiple. Influencé par CLOS, Smalltalk et Self. |
Snit | Tcl | Modèle basé sur la délégation au lieu de l'héritage |
STOOP | Tcl | Proche du modèle objet du C++. Switch class. |
Sous Linux et les autres plateformes dérivées d'Unix, l'interprète Tcl-Tk est souvent installé par défaut. Si ce n'est pas le cas, il est nécessaire de compiler les codes sources à l'aide d'un compilateur C et ensuite de procéder à l'installation. L'exécution d'un code Tcl s'effectue en saisissant au prompt du shell:
tclsh fichier.tcl
Ou alors en lançant l'interprète via tclsh
et ensuite en saisissant au prompt de l'interprète la ligne suivante:
source fichier.tcl
Cependant un script Tcl peut s'exécuter directement (un peu comme un script shell) en ajoutant la ligne suivante au début du code:
#!/usr/bin/env tclsh
Sous Windows, il est bien sûr possible de compiler les codes source mais la meilleure option demeure quand même l'installation de Tcl-Tk à partir d'un distribution précompilée. Pour exécuter un code Tcl, il suffira de double-cliquer sur celui-ci. À la différence d'Unix, il n'y a pas de console d'ouverte par défaut sous Windows. Autrement dit si vous exécutez un code Tcl en imprimant des résultats sur la sortie standard, rien ne s'affichera. Il faut ajouter au préalable la ligne suivante en début de code:
console show
On peut aussi utiliser l'interprète wish
qui gère en plus le toolkit Tk.
Starkit est l'acronyme de "StandAlone Runtime called Tclkit". C'est un mécanisme qui consiste à regrouper dans un seul fichier tous les éléments qui composent une application Tcl-Tk (sources, images, bibliothèques, extensions, ...) avec la structure dans une sorte de système de fichier virtuel. Le fichier starkit obtenu, portant l'extension .kit
, est exécuté par l'intermédiaire de Tclkit, un interprète Tcl-Tk est disponible pour toutes les plateformes cibles. En termes de déploiement cela signifie qu'il y a en tout et pour tout que deux fichiers à copier sur le disque: l'interprète Tclkit + le starkit. Nul besoin d'installer Tcl-Tk. Remarquons qu'un starkit peut être exécuté par un interprète classique (tclsh, wish).
Le Starpack est un exécutable dans lequel est incorporé les codes source d'une application sous la forme d'un starkit avec un interprète Tcl-Tk. En termes de déploiement cela signifie simplement qu'il n'y a qu'un seul fichier. Son installation consiste à le copier sur le disque et sa désinstallation consiste à le supprimer du disque. À la différence du starkit, le starpack est spécifique à la plateforme cible. Encore une fois, nul besoin d'installer Tcl-Tk.