• [^] # Re: Javascript must die

    Posté par . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 6.

    Le typage statique optionnel
    C'est juste que ça rend possible le débuggage et facilite l'intégration dans un IDE un peu évolué. Par exemple cela peut aider pour du refactoring.

    C'est une idée reçue convaincante, mais en pratique les premiers IDE évolués à proposer ce genre de chose étaient des environnement de développement pour Smalltalk et Lisp. Il est absolument faux de dire que le debug n'est "pas possible" dans un langage sans typage statique, et à ma connaissance Lisp et Smalltalk restent toujours inégalés dans ce domaine.

    (Exemple qui m'a toujours fait rêver : avec les exceptions resumable de Lisp, quand un programme lance une exception qui n'est pas rattrapée il se fige, le programmeur peut inspecter le problème (explorer les valeurs etc.), corriger le code, et revenir au point du programme qui avait lancé l'exception, le tout sans arrêter le programme.)

    Ce qui rend le débuggage difficile, ce sont les langages qui avec type erasure, où l'information de typage n'est pas conservée à l'exécution. Tous les langages qui font ça sont des langages typés statiquement (même si beaucoup de langages typés statiquement ne le font pas); ceci dit, ça a des avantages en performance, donc c'est un compromis à faire.

    L'idée selon laquelle le typage est nécessaire pour les IDE, le refactoring et le debug est historiquement fausse.