• [^] # Re: Tcl

    Posté par . 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 :

    • 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