• [^] # Re: Lent ?

    Posté par . En réponse à la dépêche Présentation d'OCaml à Rennes le jeudi 7 avril, 20h, MCE, 48 bd Magenta. Évalué à 3.

    Un aspect intéressant (unique?) de OCaml est la distinction entre sous-typage et héritage. D'une part on peut utiliser un point coloré comme point même s'ils ont été définis indépendamment et s'il n'y a pas d'héritage. Ce qui permet d'écrire:
    let print_obj a = Printf.printf "%s\n" a#to_string;;

    D'autre part on peut hériter de classe sans faire un sous-type de ces classes. Par exemple, on peut définir une classe «['a] clonable» avec une méthode clone de type unit -> 'a sans casser le système de types (autre exemple courant: une classe 'comparable').
    En java par example, la méthode est de type 'a -> object, et on est obligé d'utiliser un cast avec vérification dynamique du type et risque d'exception.

    Les deux gros avantages de ce typage entièrement statique, c'est qu'il n'y a pas de coût en perf (comme pour du C avec des cast statiques) et que l'on évite toute une catégorie de bugs (plus sûr que pas de vérification comme en C et qu'une vérification dynamique comme dans Java, python et les langages dynamiques en général).