Tcl, des scripts portables et graphiques

Ce  langage est utilisé pour faire des scripts et des prototypes de programmes. Il peut emplacer  Perl, pour les services web en  CGI . Le langage et la bibliothèque graphique sont portés sur pratiquement tous les systèmes d'exploitation et on peut donc les utiliser pour leur qualité de portabilité.

Tcl/Tk et le langage Python

Tcl, Tool Command Language (prononcer tickle) a été créé par John Ousterhout en 1988. La bibliothèque graphique Tk a été disponible en 1991.
C'est un langage de scripts  interprété, facile à apprendre, où chaque chose est une commande et peut être redéfini. La syntaxe utilise quantité de symboles comme C mais n'est pas celle du  C. En C chaque chose est une expression. Il a proposé une boucle événementielle longtemps avant JavaScript.

Bien qu'on puisse l'interfacer, avec son framework graphique Tk à tous les langages de programmation et spécialement C et Python (Tkinter), il a perdu de son intérêt avec le temps, n'étant pas mis à jour pour être adapté aux applications modernes.
Tk ne dispose pas d'un langage d'interface declaratif tel que QML (Qt), XAML ou même HTML 5, XML pour Android, ce qui semble indispensable de nos jours, comme le démontre pour Java l'abandon de JavaFX Script, un autre langage d'interface procédural comme Tk, au profit de JavaFX, un langage d'interface déclaratif.

Tcl a été supporté un temps par Sun, ce qui a contribué à son développement. Puis Sun a décidé de se consacrer à Java et le maintien de l'interpréteur a été transmis à une entreprise indépendante, Scriptics. Plus tard elle a été revendue et le repreneur n'ayant aucun intérêt pour ce langage, il n'a plus eu de développement au contraire des languages concurrents comme Python et Ruby. Par ailleurs, Tk qui faisait aussi une part de son intérêt s'est vu éclipsé par GTK et Qt.
L'ensemble Tcl/Tk a toujours une communauté active, mais est sans grand avenir en raison de la compétition dans le domaine de nouveaux langages de script comme Go, et même JavaScript qui passe en ligne de commande avec Node.js. Il n'y a rien dans Tcl/Tk que l'on ne puisse faire avec Node, JavaScript et Canvas.

Le langage Little, a été développé pour être compatible avec le code Tcl et son kit graphique, tout en disposant d'une syntaxe C-like plus lisible.

Syntaxe et exemples d'un langage de commandes

Une instruction est le nom d'une commande (il ne s'agit pas d'un mot-clé) suivi par une liste de mots séparés par un espace, les arguments.
Les instructions sont terminées par la fin de ligne. Elle peuvent être séparées par un point-virgule sur une même ligne.
Les crochets carrés remplacent un argument par une commande. Ce sont ainsi des symboles de  substitution.
Le signe = n'est jamais utilisé, la commande "set"  assigne une valeur à une variable:

set nomvar valeur  

Exemple:

set x 8

Mais il faudra ajouter le symbole $ devant le nom de la variable pour y faire référence (ce qui n'est pas le cas des tableaux):

puts $x  

Les { } servent au regroupement, sans  subsitution.
# introduit un commentaire.

Structures de contrôle:

La commande if utilise deux groupements { }, le premier pour la condition, le second pour les actions.

if { $x < 10 } { 
puts "x moins que 10"
}

La commande while à la même syntaxe.

Procédures:

La définition débute avec la commande proc, puis le nom et deux groupes pour les arguments et les instructions.

proc nomproc { arguments } {
...instructions...
}

Exemples de code:

Afficher un message:

puts "Salut le Monde!" 

Afficher le contenu d'un tableau:

array set maliste { d e m o } 

foreach i [ array get maliste ] {
puts [ concat $i = maliste($i) ]
}

Références: John K. Ousterhout, Tcl and the Tk Toolkit, Addison-Wesley.
Voir le site officiel, Tcl/Tk (en).