Posté par Aluminium95 .
En réponse au journal Après le MOOC OCaml.
Évalué à 1.
Dernière modification le 29 décembre 2016 à 10:57.
Un truc dont je suis bien conscient et, je pense, tout le monde dans la communauté OCaml, c'est que ce n'est pas vraiment agréable comme expérience pour les débutants.
Pas plus que d'utiliser gcc ou clang avec un makefile et les autotools. Je pense que ce qui est le plus pénible pour un débutant c'est la librairie standard : d'un côté elle existe et répond à certain besoins, d'un autre côté elle est assez mal faite. Le problème, c'est qu'elle n'est pas assez mal faite pour l'abandonner totalement, parce qu'elle répond au moins partiellement à certaines attentes basiques. Un choix plus raisonnable aurait été de ne pas avoir de librairie standard du tout (pas de Map, HashMap, etc ...).
Ici, le développeur qui vient d'un langage avec une lib correcte (comme python pour citer le lien so you're learning ocaml) se retrouve avec une lib bancale, et soit recode ses fonctions à la main dans un fichier perso qu'il trimballe du genre utils.ml (ce que je fais pour le moment), soit il apprend une autre librairie standard, avec ses conventions. Le problème c'est que dans tous les cas, il y a un choix (Core vs Batteries vs truc perso) et que le code devient moins « portable » : quand on arrive sur un truc basique qui devient dur à comprendre parce qu'on ne connait pas la lib, et bah c'est lourd. À la fin, un mec qui lit du code finira par connaître les habitudes des gens qui écrivent leurs propres fonctions, Core et Batteries.
Un deuxième point est la syntaxe qui est parfois très pénible, notamment la priorité des opérateurs, en particulier du if qui est super chiant. Et le fait d'utiliser des begin ... end pour corriger toutes les priorités alors que les constructions standard pourraient facilement l'éviter.
[^] # Re: Sympa
Posté par Aluminium95 . En réponse au journal Après le MOOC OCaml. Évalué à 1. Dernière modification le 29 décembre 2016 à 10:57.
Pas plus que d'utiliser
gccouclangavec un makefile et les autotools. Je pense que ce qui est le plus pénible pour un débutant c'est la librairie standard : d'un côté elle existe et répond à certain besoins, d'un autre côté elle est assez mal faite. Le problème, c'est qu'elle n'est pas assez mal faite pour l'abandonner totalement, parce qu'elle répond au moins partiellement à certaines attentes basiques. Un choix plus raisonnable aurait été de ne pas avoir de librairie standard du tout (pas de Map, HashMap, etc ...).Ici, le développeur qui vient d'un langage avec une lib correcte (comme python pour citer le lien so you're learning ocaml) se retrouve avec une lib bancale, et soit recode ses fonctions à la main dans un fichier perso qu'il trimballe du genre
utils.ml(ce que je fais pour le moment), soit il apprend une autre librairie standard, avec ses conventions. Le problème c'est que dans tous les cas, il y a un choix (Core vs Batteries vs truc perso) et que le code devient moins « portable » : quand on arrive sur un truc basique qui devient dur à comprendre parce qu'on ne connait pas la lib, et bah c'est lourd. À la fin, un mec qui lit du code finira par connaître les habitudes des gens qui écrivent leurs propres fonctions, Core et Batteries.Un deuxième point est la syntaxe qui est parfois très pénible, notamment la priorité des opérateurs, en particulier du
ifqui est super chiant. Et le fait d'utiliser desbegin ... endpour corriger toutes les priorités alors que les constructions standard pourraient facilement l'éviter.