• # Le cercle vicieux de la popularité

    Posté par  (site web personnel) . Évalué à 4 (+2/-0).

    Le premier problème est celui décrit au début de l’article : OCaml manque de popularité. On a donc une communauté assez limitée pour travailler dessus et je trouve que le langage en pâtit (notamment dans le nombre de librairies disponibles).

    Parmi les gros avantages non cités dans l’article, j’ajouterai aussi sa stabilité : le code qui fonctionnait il y a 20 ans compilera encore aujourd’hui (avec toutefois des warning en plus sur des cas particuliers qui n’étaient pas considérés alors).

    Dans les points tendancieux de l’article, je trouve limite de parler de la « bonne documentation », qui ne peut pas être généralisée aux librairies externes (mais cela rejoint ma première critique).

    Je suis aussi convaincu par le langage, donc pas forcément objectif, mais de mon côté, le langage me permet de construire des applications « plus grosse que moi » sereinement. Par là je veux dire que je peux écrire une application trop complexe pour avoir la connaissance fine ligne de code, et pourtant avoir l’assurance que mon code ne cassera pas l’existant.

    Vu que je suis en train de passer du bépo à de l’ergol en ce moment, la comparaison du clavier est ce qui me vient en tête en premier : j’ai vraiment le sentiment d’écrire ce que j’ai en tête plutôt que de réfléchir à ce que je veux dire et me demander comment l’écrire.

    • [^] # Re: Le cercle vicieux de la popularité

      Posté par  (site web personnel) . Évalué à 3 (+1/-0).

      Perso j'aime beaucoup Ocaml. Je n'ai jamais eu un compilateur qui t'accompagne aussi efficacement vers un code fonctionnel (et bien typé ; vu que c'est son leitmotiv). Par contre sa syntaxe est un peu hermétique de prime abord, même si elle découle de choix et compromis que je trouve raisonnable à titre perso.

      Adhérer à l'April, ça vous tente ?

      • [^] # Re: Le cercle vicieux de la popularité

        Posté par  . Évalué à 3 (+1/-0).

        Par contre sa syntaxe est un peu hermétique de prime abord

        En toute curiosité, que trouves-tu d'hermétique dans sa syntaxe ? Personnellement, je la trouve claire dans l'ensemble.

        Le premier point qui m'interpelle est la syntaxe sur les types paramétriques où l'argument est placé devant la fonction, tout cela à cause d'une mauvaise influence de la grammaire anglaise : en anglais on écrira l is an int list, ce qui donne l : int list en OCaml (le : d'un jugement de typage étant le verbe être d'un jugement prédicatif, comme dans Socrate est mortel), là où je préférerais l : list int, le type paramétrique list étant une fonction des types dans les types que l'on applique ici à l'argument int. Cette syntaxe étant celle de tous les autres langages basés sur Curry-Howard, et qui est celle de l'application de fonction quand elle concerne les valeurs et non les types en OCaml.

        Le second est la syntaxe des modules de première classe qui permettent de considérer les types classes de Haskell ou les traits de Rust comme des valeurs de première classe (ce qu'ils ne sont pas dans ces langages, étant gérés uniquement par le compilateur). Si j'ai un trait Showable (un type que l'on peut convertir en chaînes de caractères), on se retrouve avec des interfaces ayant cette signature

        val foo : (module M : Showable with type t = 'a) -> 'a -> foo

        ce qui est un peu lourd. Là où je préférerais une syntaxe plus légère de la forme

        val foo : (module M : Showable) -> M.t -> foo

        Le premier point risque de rester pour toujours pour des raisons historiques, le second est un PR en attente de validation qui, en plus de simplifier la syntaxe, enrichit grandement les possibilités d'usage des modules de première classe.

        Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

      • [^] # Re: Le cercle vicieux de la popularité

        Posté par  (site web personnel, Mastodon) . Évalué à 2 (+0/-0).

        Tu nous en dis pas assez …sur la syntaxe (c’est Rust que je trouve ésotérique pour ma part)

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.