D'autres posts de cette page rappellent les qualités techniques de OCaml
(concision de la syntaxe, vitesse d'exécution, etc.).
Outre ces qualités importantes: n'oublions pas les qualités
liées à la présence d'un interpréteur (comme c'est le cas pour LISP,
perl, python...).
Grâce à l'interpréteur on peut tester à chaud chacune des fonctions développées
(en purement fonctionnel, tous les programmes sont des fonctions).
On élabore ainsi en même temps le programme et ses tests.
C'est à mon avis beaucoup plus confortable que les langages
uniquement compilés
(OCaml est compilable _ET_ interprétable):
En C ou en Java on fait édition puis compilation puis édition des
tests puis compilation des tests puis tests.
Avec un langage muni d'un interpréteur on fait
édition et tests en même temps, sans avoir à programmer les tests:
on les appelle uniquement depuis l'interpréteur.
Et _ça_, pour la vitesse de développement que ça entraine, c'est du
"killer feature" mes amis! :O)
P.S: le compilateur ocaml dérecursivise les fonctions récursives
terminales, ainsi vos fonctions écrites en purement fonctionnel
s'éxécutent en temps et place constante. Les compilateurs scheme
savent aussi faire cela.
[^] # Le deuxième effet OCaml
Posté par HappyCrow . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 1.
(concision de la syntaxe, vitesse d'exécution, etc.).
Outre ces qualités importantes: n'oublions pas les qualités
liées à la présence d'un interpréteur (comme c'est le cas pour LISP,
perl, python...).
Grâce à l'interpréteur on peut tester à chaud chacune des fonctions développées
(en purement fonctionnel, tous les programmes sont des fonctions).
On élabore ainsi en même temps le programme et ses tests.
C'est à mon avis beaucoup plus confortable que les langages
uniquement compilés
(OCaml est compilable _ET_ interprétable):
En C ou en Java on fait édition puis compilation puis édition des
tests puis compilation des tests puis tests.
Avec un langage muni d'un interpréteur on fait
édition et tests en même temps, sans avoir à programmer les tests:
on les appelle uniquement depuis l'interpréteur.
Et _ça_, pour la vitesse de développement que ça entraine, c'est du
"killer feature" mes amis! :O)
P.S: le compilateur ocaml dérecursivise les fonctions récursives
terminales, ainsi vos fonctions écrites en purement fonctionnel
s'éxécutent en temps et place constante. Les compilateurs scheme
savent aussi faire cela.