J'utilise ce langage tous les jours et il a de très nombreux problèmes :
L'accès aux éléments d'une liste via lindex
La commande set pour affecter une valeur à une variable
Impossible de créer des données structurées (sauf TclOO, voir point suivant)
La partie Tcl Orienté Objet est super lente, donc il ne faut pas trop l'utiliser
Passage des arguments par copie, on peut simuler des références avec "upvar" pour accéder au contexte de l'appelant
Le langage est hyper fragile, on arrive très souvent sur des "undefined variable" et le code se retrouve vite remplit de "info exists" pour savoir si la variable existe vraiment
L'utilisation de la pile C qui peut conduire à des deadlocks juste en utilisant plusieurs vwait
La communauté, j'ai écrit 3 rapports de bugs et à chaque fois on m'a envoyé bouler
Le wiki tcl, avec les collègues on l'appelle le musée des horreurs, chacun y va de son petit bout de code pour résoudre des problèmes qui devrait être adressés par le langage (genre enlever un élément d'une liste)
Et concernant Tk :
C'est lent, par exemple TkText comporte des opérations de base en O(n3)
C'est moche et les thèmes n'aident vraiment pas
Ce n'est pas thread safe, impossible d'utiliser Tk dans deux interpréteurs Tcl, ni même d'utiliser un autre toolkit graphique
Difficile d'écrire une IHM robuste, le simple fait de fermer une boîte de dialogue peut très facilement conduire à un message d'erreur (à cause de la gestion des évènements Tcl)
Le seul avantage que je trouve à ce langage : le binding C ultra simple
[^] # Re: Tcl
Posté par Corentin Rossignon . En réponse au journal Retour d'expérience sur les langages de programmation. Évalué à 6.
J'utilise ce langage tous les jours et il a de très nombreux problèmes :
Et concernant Tk :
Le seul avantage que je trouve à ce langage : le binding C ultra simple