Penso che il problema con OCaml sia che non è troppo utile "pronto all'uso". L'eventuale motivo per cui le persone usano una lingua è perché ha librerie di cui hanno bisogno. Con niente "out of the box", tuttavia, nessuno si spinge abbastanza in un progetto per rendersi conto che devono scrivere una biblioteca. Il risultato è un linguaggio senza librerie, il che rende difficile scrivere "app reali".
Penso che questo sia ciò di cui soffre OCaml: nessuno si preoccupa di avviare "progetti reali" perché tutto ciò che esiste è un linguaggio di programmazione. Sì, posso aggiungere due e due e stampare il risultato. Il risultato è una raccolta di biblioteche che sono per lo più abbandonate accademiche (l'autore ha ottenuto il suo dottorato di ricerca e si è trasferito), il che non è molto utile per i programmatori esperti.
(So che ci sono lavori in corso per cambiarlo, con progetti come "Batterie incluse". Torna qui tra 5 anni e forse OCaml sarà più popolare.)
Ci sono alcune eccezioni a questa regola. Java iniziò senza librerie, ma Sun pagò le persone per scriverle tutte in casa, e poi ne vendettero l'inferno. Certificazione Java, hardware specifico di Java, libri Java, classi Java, ecc. Quindi ha persino convinto la maggior parte delle università a insegnarlo esclusivamente, anche se non è un linguaggio molto buono da usare per l'apprendimento della programmazione.
Il risultato è stato popolarità. Il denaro può risolvere molti problemi.
Nell'arena del linguaggio funzionale, possiamo vedere che Haskell sta diventando abbastanza popolare. Penso che la maggior parte della popolarità sia dovuta a persone come dons che scrivono utili librerie e non smettono mai di commercializzare la lingua. Ogni giorno vedi alcuni articoli di Haskell sulla programmazione di Reddit. Questo lo tiene bloccato nelle menti delle persone fino a quando non decidono finalmente, "Ho intenzione di provare Haskell". Quando lo fanno, vedono cose utili come framework web, database di oggetti, librerie OpenGL e librerie di elaborazione XML. Ciò significa che possono effettivamente fare qualcosa di utile "Right Now". Quindi tra il potenziale di essere produttivo e sentirne parlare molto, Haskell ha guadagnato molta popolarità.
CL ha molte delle stesse librerie di Haskell ed è quasi altrettanto veloce, ma nessuno ne parla, quindi "sembra morto". In effetti #lisp è molto più silenzioso di #haskell, ma Lisp è ancora un linguaggio molto produttivo con molte librerie. Nessun'altra lingua ha SLIME. Ma il marketing è molto importante e Haskell lo fa meglio di Lisp o OCaml (e compete per la stessa base di utenti).
Infine, alcune persone non "ottengono" la programmazione, quindi rompendo il loro modello mentale (le variabili sono caselle con valori, il codice viene eseguito dall'alto verso il basso) garantirà che non usino il tuo linguaggio. Questo tipo di programmatore è una grande percentuale della popolazione di programmazione, quindi ciò limita ulteriormente la possibile base di utenti di linguaggi astratti come Lisp, Haskell e OCaml.