• [^] # Re: L'idéal

    Posté par . En réponse au journal Votre langage idéal ?. Évalué à 2. Dernière modification le 02 février 2012 à 02:18.

    Je suppose que tu évoques LISP à cause de la partie sur les structures de contrôle et les arguments passés par nom ? En fait, pour ce que Mildred demande la puissance des macros n'est même pas nécessaire j'ai l'impression, de simples fermetures suffisent (c'est ce que fait smalltalk justement pour le if, et le branchement builtin est caché dans la liaison dynamique).

    La partie vraiment pas évidente c'est le typage optionnel. Il y a eu pas mal de littérature sur le gradual typing (ou soft typing) et les blame tracking type systems, mais à l'exceptions de langages comme Racket (évoqué par gasche) il n'y a pas encore d'implémentation sérieuse de ces systèmes à ma connaissance. Dart est un des premiers environnements "grand public" à proposer ça mais la partie typée n'est pas sûre (typesafe)...

    Maintenant, je ne sais pas si Mildred a connaissance de l'existence l'inférence de type si par "typage optionel" elle entendait "annotations de typage optionnelles". Les programmeurs font parfois cet amalgame. Dans le dernier cas, son langage ressemblerait beaucoup à haskell (ou à un ML qui aurait un bon support pour la concurrence, JoCaml peut-être ?). Les deux seuls points que haskell ne remplit pas sont:

    • langage objet: mais les existentiels + typeclasses fournissent une fonctionnalité similaire;
    • une VM généraliste: là-dessus j'ai été récemment assez convaincu par les auteurs de Dart qu'une telle chose n'existe pas. (Je ne leur fais pas super confiance pour le design du langage - quoique Bracha a rejoint la troupe, mais il a aussi un peu déraillé sur son blog récemment - mais pour son implémentation si : ce sont les gens qui ont bossé sur V8, Hotspot avant et self encore avant, ils savent en général de quoi ils parlent.)