Ich denke, das Problem mit OCaml ist, dass es "out of the box" nicht allzu nützlich ist. Der Grund, warum Leute eine Sprache benutzen, ist, dass sie Bibliotheken hat, die sie brauchen. Wenn nichts "out of the box" ist, kommt niemand weit genug in ein Projekt, um zu erkennen, dass er eine Bibliothek schreiben muss. Das Ergebnis ist eine Sprache ohne Bibliotheken, was das Schreiben von "echten Apps" erschwert.
Ich denke, das ist es, woran OCaml leidet - niemand stört sich daran, "echte Projekte" zu starten, denn alles, was es gibt, ist eine Programmiersprache. Ja, ich kann zwei und zwei addieren und das Ergebnis ausdrucken. Das Ergebnis ist eine Sammlung von Bibliotheken, bei denen es sich hauptsächlich um wissenschaftliche Abbruchmaterialien handelt (der Autor promovierte und ging weiter), was für das Üben von Programmierern nicht allzu hilfreich ist.
(Ich weiß, es wird daran gearbeitet, dies mit Projekten wie "Batteries Included" zu ändern. Kommen Sie in 5 Jahren wieder hierher, und vielleicht wird OCaml populärer.)
Es gibt einige Ausnahmen von dieser Regel. Java startete ohne Bibliotheken, aber Sun bezahlte die Leute, um sie alle im Haus zu schreiben, und dann vermarkteten sie das verdammt noch mal. Java-Zertifizierung, Java-spezifische Hardware, Java-Bücher, Java-Klassen usw. haben dann sogar die meisten Universitäten davon überzeugt, sie exklusiv zu unterrichten, obwohl sie keine sehr gute Sprache für das Programmieren ist.
Das Ergebnis war Popularität. Geld kann viele Probleme lösen.
Auf dem Gebiet der funktionalen Sprache können wir sehen, dass Haskell immer beliebter wird. Ich denke, der größte Teil der Popularität ist auf Leute wie Dons zurückzuführen, die nützliche Bibliotheken schreiben und nie aufhören, die Sprache zu vermarkten. Jeden Tag sehen Sie ein paar Haskell-Artikel über die Programmierung von Reddit. Dies hält es in den Köpfen der Menschen fest, bis sie schließlich entscheiden: "Ich werde es mit Haskell versuchen." Dabei sehen sie nützliche Dinge wie Web-Frameworks, Objektdatenbanken, OpenGL-Bibliotheken und XML-Verarbeitungsbibliotheken. Dies bedeutet, dass sie tatsächlich "im Augenblick" etwas Nützliches tun können. Haskell hat also zwischen dem Potenzial, produktiv zu sein und viel davon zu hören, eine Menge an Popularität gewonnen.
CL hat viele der gleichen Bibliotheken wie Haskell und ist fast so schnell, aber niemand spricht darüber, so dass es sich "tot anfühlt". In der Tat ist #lisp viel leiser als #haskell, aber Lisp ist immer noch eine sehr produktive Sprache mit vielen Bibliotheken. Keine andere Sprache hat SLIME. Aber Marketing ist sehr wichtig und Haskell macht es besser als Lisp oder OCaml (und konkurriert um die gleiche Nutzerbasis).
Schließlich werden einige Leute niemals programmieren. Wenn Sie also ihr mentales Modell (Variablen sind Felder mit Werten, Code wird von oben nach unten ausgeführt) brechen, stellen Sie sicher, dass sie Ihre Sprache nicht verwenden. Diese Art von Programmierer stellt einen großen Prozentsatz der Programmierbevölkerung dar, wodurch die mögliche Verwendung abstrakter Sprachen wie Lisp, Haskell und OCaml weiter eingeschränkt wird.