Joris R a écrit 301 commentaires

  • [^] # Re: Sympa ce comparatif

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche "The Great Computer Language Shootout" Divers langages et compilateur au banc d'essai. Évalué à 4.

    >suite a lecture du comparatif, j'ai voulu apprendre Ocaml
    >Mais j'ai fait un rejet d'Ocaml: je n'ai vraiment pas l'esprit fonctionnel.

    Le rejet au début c'est normal la facon de penser est tellement diférente ...

    Mais si tu t'accroche un petit peut tu verra que les outils que te proposent les languages fonctionnels sont *tres* puissant.
    Quelques petits exemples :

    - L'inférence des types : on ne définis jamais le type des variables (pas de définition et pas de typage de fonction non plus).
    Le type est déterminé par le compilateur (on dit inféré) grace aux opérations qui sont effectué dessus.
    Par exemple si on fais a+b le compilateur sait que a et b sont des integer car l'opérateur + ne s'applique qu'a eux.
    Alors évidement c'est tres différent du C (la language de base pour bcp d'entre nous) mais imaginez comme c'est cool de ne pas avoir à déclarer des milliard de trucs ni a utiliser des caractères comme en perl (style $variable ou @bidule) (j'espere que je dis pas de connerire pasque ca fais des annés que j'ai pas touché au perl)

    -La pleine fonctionnalitée : les fonctions sont des variables (presque) comme les autres. Grace à ça on peut définir des itérateur (des for améliorés) sur toutes les structures de donnés. Exemple : vous prenez l'itérateur do_list qui applique une fonction a tout les objet d'un liste, et vous pouvez faire :
    do_list (printf "%s") ma_liste;;
    et ca imprime toute la liste

    Alors évidement le revers de la médaille c'est que les compilos de ce genre sont généralement assez lents. A mon avis ceux qui l'ont programmé doivent être très fiers de leurs optimisations. C'est vraiment un tour de force de faire tourner ca plus vite que du C++.

    Et l'auteur du comparatif dis justement que la vitesse d'éxecution n'est pas tout : le temps de développement peut être aussi déterminant, et justement grace a la puissance d'Ocaml on peut avoir le beurre et l'argent du beurre =)

    Et puis programmer en fonctionnel même juste pour essayer je trouve que ça ouvre l'esprit a d'autre méthode et d'autre facon de résoudre les problemes.

    REHM Joris

    Pour ceux que ca intéresse : caml.inria.fr (en plus c'est francais)