• [^] # Re: Perl 6 ?

    Posté par . En réponse au journal Sortie de Perl 5.14.0. Évalué à 10.

    • La lib standard est totalement vide : pas de gestion de l'unicode, pas de strings non mutables, pas de petits outils par défaut comme @@ et @$ que tout le monde redéfinit dans son prelude.ml, une interface système qui est en gros un copier-coller de celle du C (donc très bas niveau par rapport à ce qu'il y a dans les stdlibs de Python/Perl). Je sais bien que Batteries, Core ou Extlib (oh tiens, 3 réimplémentations de la lib standard d'OCaml, ça c'est homogène !) règlent ces problèmes, mais ça n'est pas une excuse ;
    • Pas de gestionaire de packages par défaut. Même findlib n'est pas inclut dans la distribution OCaml de base, il faut l'installer à part. Je ne parle même pas de GODI qui est à peu près le seul truc utilisable mais lui non plus pas standard. C'est con, ça + lib standard moisie ;
    • Rien de plus chiant que de compiler de l'OCaml. Les modules doivent être linkés dans leur ordre de dépendance, ce qui fait que le travail de résolution des dépendances entre les modules doit être fait par le build system. ocamldep simplifie bien la tâche, sauf quand tu as quelque chose d'un peu plus compliqué qu'un projet d'exemple bidon. Au final j'ai eu plusieurs fois à écrire un programme qui fait un tri topologique sur l'output d'ocamldep pour remettre les modules dans le bon ordre pour les filer à ocamlopt ;
    • Tu pourrais répondre à ma critique d'au dessus « ocamlbuild ». Où est la doc ? Elle n'existe simplement pas, sauf si tu considères trois exemples de code sur un wiki comme une doc. Combine l'absence de documentation à l'utilisation d'extensions syntaxiques qui ont été crées uniquement pour ce projet, et tu as comme résultat un truc illisible et incompréhensible pendant 2 ou 3h ;
    • « Bon, apparemment personne s'est plaint qu'on a pas release la dernière version mineure d'OCaml sous Windows, du coup on va pas non plus release la version 3.12.0 sous Windows ». En gros, si tu veux avoir un truc portable, tu es coincé sous 3.11. Et si tu veux avoir un truc portable avec des Big_int, tu es donc coincé dans la mocheté à moins d'utiliser des extensions Camlp4 ;
    • En parlant de camlp4, c'est devenu quoi camlp5 ? Pourquoi la nouvelle version de camlp4 s'appelle camlp4, et l'ancienne version camlp5 ? C'est pas totalement illogique, par hasard ?
    • Pas de support des threads natifs si j'ai bien compris : tu es coincé avec un programe monothreaded car le GC n'est pas concurrent. C'est triste, de nos jours où presque toutes les machines récentes ont 4 à 8 coeurs ;
    • De nos jours Haskell est bien plus soutenu par tout le monde qu'OCaml, a une communauté importante, plusieurs entreprises derrière qui soutiennent (en tout cas, plus qu'OCaml qui a Jane Street, l'INRIA, et... j'en vois pas d'autres), un bon support des plateformes majeures (Win/Linux/Mac), des mises à jour assez grandes régulièrement (cf. le nouveau backend LLVM), etc.
    • Et même si tu veux rester proche de l'OCaml, F# marche bien sous Mono. Mais j'irais pas jusqu'à dire que c'est une bonne idée :)