Ben même si tu te cantonnes à un style de programmation, tu disposes toujours du polymorphisme "for free", du typage statique, implicite et fort, des fonctions comme citoyens de 1ère classe du langage, du garbage collector, de la possiblité de générer du bytecode portable ou du code natif optimisé rapide, du système très puissant de modules, de l'héritage multiple, des closures, de la méta-programmation (avec MetaOcaml), d'un pré-processeur-pretty-printer très paramétrable, d'un support pour l'évaluation paresseuse, etc... qui sont d'autres caractéristiques (je ne dis pas "qualités") qui peuvent intervenir dans ton choix de langage.
En ce qui me concerne, ce sont d'ailleurs généralement certaines d'entre elles qui me font opter pour OCaml. Et l'aspect multi-paradigme d'Ocaml me permet de tirer avantage de toutes ces caractéristiques sans être contraint à un style de programmation particulier.
Pour préciser ce que je voulais dire sur le mélange des styles:
la dernière fois que j'ai utilisé ce langage, c'était pour un problème pour lequel un algo impérativo-fonctionnel (ie un algo récursif avec des applications partielles, ainsi qu'un environnement qui varie au cours de l'algo) était beaucoup plus simple et rapide qu'une solution purement impérative (qui simule la récursivité avec une pile) ou purement fonctionnelle (où la gestion d'un environnement non modifiable compliquait l'algorithme). OCaml m'a permis d'exprimer cette fonction à style mélangé de manière très naturelle et efficace à l'exécution.
[^] # Re: OCaml, oui mais...
Posté par remyremy . En réponse à la dépêche Langages et performances : les Français à l'honneur !. Évalué à 6.
En ce qui me concerne, ce sont d'ailleurs généralement certaines d'entre elles qui me font opter pour OCaml. Et l'aspect multi-paradigme d'Ocaml me permet de tirer avantage de toutes ces caractéristiques sans être contraint à un style de programmation particulier.
Pour préciser ce que je voulais dire sur le mélange des styles:
la dernière fois que j'ai utilisé ce langage, c'était pour un problème pour lequel un algo impérativo-fonctionnel (ie un algo récursif avec des applications partielles, ainsi qu'un environnement qui varie au cours de l'algo) était beaucoup plus simple et rapide qu'une solution purement impérative (qui simule la récursivité avec une pile) ou purement fonctionnelle (où la gestion d'un environnement non modifiable compliquait l'algorithme). OCaml m'a permis d'exprimer cette fonction à style mélangé de manière très naturelle et efficace à l'exécution.