Et comme OCaml est difficile à apprendre, si on ne l'a pas appris à l'université/école d'ingénieur, il est dur de s'y mettre tout seul. Tout le contraire de Python de ce point de vue.
OCaml est peut-être difficile à apprendre mais il est facile à utiliser, car comme tu le dis, le compilateur trouve toutes les erreurs!1 Au contraire, python est facile à apprendre et difficile à utiliser car l'interpréteur ne trouve aucune erreur. Vu qu'on passe beaucoup plus de temps à utiliser un langage qu'à l'apprendre… pour moi c'est tout vu!
1 Comme je suis sûr que certains ne me croient pas je détaille. Quand je programme je fais couramment les erreurs suivantes:
fautes de frappe;
fautes de modèle, je me suis emmêlé les pinceaux dans les structures et essaie de lire un membre qui n'apparaît pas dans une variable;
fautes d'algorithme bêtes (les fautes de type de type);
fautes d'algorithme protocolaires (les fautes d'invariants), par exemple j'écris dans un fichier que j'ai déjà fermé;
fautes d'algorithme intelligentes (l'algorithme est faux).
Le compilateur OCaml trouve toutes les erreurs de type 1, 2, et 3 automatiquement. En travaillant sur la structure de notre programme, on peut faire en sorte que le compilateur trouve aussi toutes les erreurs de tzpe 4. (Il faut exprimer les invariants du programme dans le système des types.) Les seules erreurs que ne trouve pas le compilateur OCaml sont celles de type 5, c'est plutôt bien et beaucoup mieux que ce que font d'autres langanges. Les langages interprétés ne détectent les fautes de type 1, 2, ou 3 que lorsqu'ils essaient de les éxécuter, par exemple. Les langages compilés ne s'en sortent pas tous mieux, par exemple les lanagages à surcharge d'opérateur peuvent accepter des programmes faux qui ont l'air corrects à cause de cette surcharge!
[^] # Re: Utilisation d'OCaml dans l'industrie
Posté par Michaël (site web personnel) . En réponse à la dépêche Ocsigen : repenser le développement des applications HTML5. Évalué à 3.
OCaml est peut-être difficile à apprendre mais il est facile à utiliser, car comme tu le dis, le compilateur trouve toutes les erreurs!1 Au contraire, python est facile à apprendre et difficile à utiliser car l'interpréteur ne trouve aucune erreur. Vu qu'on passe beaucoup plus de temps à utiliser un langage qu'à l'apprendre… pour moi c'est tout vu!
1 Comme je suis sûr que certains ne me croient pas je détaille. Quand je programme je fais couramment les erreurs suivantes:
Le compilateur OCaml trouve toutes les erreurs de type 1, 2, et 3 automatiquement. En travaillant sur la structure de notre programme, on peut faire en sorte que le compilateur trouve aussi toutes les erreurs de tzpe 4. (Il faut exprimer les invariants du programme dans le système des types.) Les seules erreurs que ne trouve pas le compilateur OCaml sont celles de type 5, c'est plutôt bien et beaucoup mieux que ce que font d'autres langanges. Les langages interprétés ne détectent les fautes de type 1, 2, ou 3 que lorsqu'ils essaient de les éxécuter, par exemple. Les langages compilés ne s'en sortent pas tous mieux, par exemple les lanagages à surcharge d'opérateur peuvent accepter des programmes faux qui ont l'air corrects à cause de cette surcharge!