Je ne suis pas si sur que la faible popularité d'OCaml soit imputable à l'enseignemen,
il y a pas mal d'université enseignany Ocaml en france, particulièrement dans l'Est.
Hélàs, OCaml est souvent enseigné dans un cadre très restreint, comme exemple de langage fonctionnel. On impose aux élèves de n'utiliser qu'une toute petite partie du langage, et ils en sortent généralement dégoutés. C'est un paradoxe, car OCaml permet à la fois la programmation impérative (il y a des boucles, des variables modifiables), la programmation fonctionnelle typée, et la programmation orientée-objet (on peut définir des classes, des objets, et appeler des méthodes). Il permettrait au contraire de n'utiliser qu'un seul langage pour enseigner tous ces paradigmes !
OCaml est un langage qui par design impose de fortes limitations à l'utilisateur en
échange d'une fiabilité élevée, voir même trés élevée.
Des limitations ? Pour le débutant, oui, parce qu'il a l'impression de se battre contre le typeur, qui lui indique ses erreurs, sans se rendre compte que son programme est simplement faux sinon. Après avoir développé un gros projet en OCaml, on trouve au contraire que le système de types est une aide indispensable, qui facilite le travail (on peut être moins rigoureux qu'avec un autre langage, parce qu'on sait que le typeur nous surveille !) et on ne comprend plus comment des gens peuvent encore développer en Python ou Java (on les regarde comme les adultes regardent les enfants, la naïveté éveille la bienveillance…)
Il y a des tas de situations ou subir ces limitations est gênant, rébarbatif et souvent
une perte de temps,
C'est tout le contraire, pour le connaisseur, le typeur fait gagner du temps, le code est aussi court qu'en Python (en OCaml, on n'indique pas les types, le typeur les devine), et les erreurs sont toutes attrapées tout de suite, avant même les premiers tests.
il n'est pas trés étonnant que pour des domaines ou la fiabilité est secondaire,
l'enseignement d'un autre langage est plébiscité par les entreprises….
Je ne connais pas d'entreprises pour lesquelles la fiabilité est secondaire. La fiabilité du code, c'est aussi la capacité de ce code d'être adapté et maintenu sur le long terme, sans introduire de bugs. Je connais des entreprises qui ont crû la fiabilité secondaire, et qui galèrent ensuite pour maintenir un code non-maintenable (soit elles y dépensent des sommes folles, soit elles perdent des clients parce que leurs coûts deviennent trop élevés). Avec OCaml, pour toute modification du code, le typeur indique tous les endroits à modifier, la maintenance (corrective comme évolutive) est ensuite un jeu d'enfant…
[^] # Re: Utilisation d'OCaml dans l'industrie
Posté par Fabrice Le Fessant . En réponse à la dépêche Ocsigen : repenser le développement des applications HTML5. Évalué à 5.
Hélàs, OCaml est souvent enseigné dans un cadre très restreint, comme exemple de langage fonctionnel. On impose aux élèves de n'utiliser qu'une toute petite partie du langage, et ils en sortent généralement dégoutés. C'est un paradoxe, car OCaml permet à la fois la programmation impérative (il y a des boucles, des variables modifiables), la programmation fonctionnelle typée, et la programmation orientée-objet (on peut définir des classes, des objets, et appeler des méthodes). Il permettrait au contraire de n'utiliser qu'un seul langage pour enseigner tous ces paradigmes !
Des limitations ? Pour le débutant, oui, parce qu'il a l'impression de se battre contre le typeur, qui lui indique ses erreurs, sans se rendre compte que son programme est simplement faux sinon. Après avoir développé un gros projet en OCaml, on trouve au contraire que le système de types est une aide indispensable, qui facilite le travail (on peut être moins rigoureux qu'avec un autre langage, parce qu'on sait que le typeur nous surveille !) et on ne comprend plus comment des gens peuvent encore développer en Python ou Java (on les regarde comme les adultes regardent les enfants, la naïveté éveille la bienveillance…)
C'est tout le contraire, pour le connaisseur, le typeur fait gagner du temps, le code est aussi court qu'en Python (en OCaml, on n'indique pas les types, le typeur les devine), et les erreurs sont toutes attrapées tout de suite, avant même les premiers tests.
Je ne connais pas d'entreprises pour lesquelles la fiabilité est secondaire. La fiabilité du code, c'est aussi la capacité de ce code d'être adapté et maintenu sur le long terme, sans introduire de bugs. Je connais des entreprises qui ont crû la fiabilité secondaire, et qui galèrent ensuite pour maintenir un code non-maintenable (soit elles y dépensent des sommes folles, soit elles perdent des clients parce que leurs coûts deviennent trop élevés). Avec OCaml, pour toute modification du code, le typeur indique tous les endroits à modifier, la maintenance (corrective comme évolutive) est ensuite un jeu d'enfant…