Je pense que le problème avec OCaml est qu’il n’est pas très utile "out of the box". La raison éventuelle pour laquelle les gens utilisent un langage est parce qu'il a des bibliothèques dont ils ont besoin. Avec rien "out of the box", cependant, personne ne va assez loin dans un projet pour se rendre compte qu'ils ont besoin d'écrire une bibliothèque. Le résultat est un langage sans bibliothèques, ce qui rend difficile l'écriture de "vraies applications".
Je pense que c’est ce dont souffre OCaml - personne ne l’ennuie à démarrer de "vrais projets", car il n’ya qu’un langage de programmation. Oui, je peux en ajouter deux et deux et imprimer le résultat. Le résultat est une collection de bibliothèques qui sont principalement des logiciels abandonnés académiques (l'auteur a obtenu son doctorat et est passé au suivant), ce qui n'est pas très utile pour les programmeurs.
(Je sais que des travaux sont en cours pour changer cela, avec des projets tels que "Batteries Included". Revenez ici dans 5 ans et peut-être qu'OCaml sera plus populaire.)
Il y a quelques exceptions à cette règle. Java a commencé avec pas de bibliothèques, mais Sun a payé les gens pour les écrire tous en interne, puis ils en ont vendu l'enfer. Certification Java, matériel spécifique à Java, livres Java, classes Java, etc. Puis même convaincu la plupart des universités de l’enseigner exclusivement, même si ce n’est pas un très bon langage à utiliser pour apprendre la programmation.
Le résultat était la popularité. L'argent peut résoudre beaucoup de problèmes.
Dans le domaine des langages fonctionnels, nous pouvons constater que Haskell est en train de devenir très populaire. Je pense que la plus grande partie de la popularité est due à des gens comme des artistes qui écrivent des bibliothèques utiles et ne cessent jamais de commercialiser le langage. Chaque jour, vous voyez quelques articles de Haskell sur la programmation Reddit. Cela le garde dans l’esprit des gens jusqu’à ce qu’ils décident enfin: «Je vais essayer Haskell». Lorsqu'ils le font, ils voient des éléments utiles tels que des infrastructures Web, des bases de données objet, des bibliothèques OpenGL et des bibliothèques de traitement XML. Cela signifie qu'ils peuvent réellement faire quelque chose d'utile "Right Now". Donc, entre le potentiel de productivité et l’écoute fréquente, Haskell a acquis une grande popularité.
CL a beaucoup des mêmes bibliothèques que Haskell et est presque aussi rapide, mais personne n'en parle, donc il se sent "mort". En effet, #lisp est beaucoup plus silencieux que #haskell, mais Lisp reste un langage très productif avec beaucoup de bibliothèques. Aucune autre langue n'a SLIME. Mais le marketing est très important et Haskell le fait mieux que Lisp ou OCaml (et est en concurrence avec la même base d’utilisateurs).
Enfin, certaines personnes ne "connaîtront" jamais la programmation, alors casser leur modèle mental (les variables sont des boîtes avec des valeurs, le code s'exécute de haut en bas) garantira qu'elles n'utilisent pas votre langage. Ce type de programmeur représente un pourcentage élevé de la population de programmation, ce qui limite d'autant la base d'utilisateurs possibles de langages abstraits tels que Lisp, Haskell et OCaml.