Я думаю, що проблема з OCaml полягає в тому, що він не надто корисний "поза коробкою". Можлива причина, чому люди використовують мову, полягає в тому, що в ній є необхідні бібліотеки. Хоча нічого "не вийшло", хоча ніхто не забирається досить далеко в проект, щоб зрозуміти, що їм потрібно написати бібліотеку. В результаті виходить мова без бібліотек, що ускладнює написання "справжніх додатків".
Я думаю, що саме від цього страждає OCaml - ніхто не заважає запускати в ньому "реальні проекти", тому що там є мова програмування. Так, я можу додати два та два та надрукувати результат. Результатом є колекція бібліотек, які в основному є академічними занедбаними програмами (автор отримав ступінь доктора наук і продовжив роботу), що не надто корисно для практикуючих програмістів.
(Я знаю, що зараз ведуться роботи, щоб змінити це, з такими проектами, як "Батареї включені". Поверніться сюди через 5 років, і, можливо, OCaml стане більш популярним.)
З цього правила є деякі винятки. Java починала, не маючи бібліотек, але Sun платила людям, щоб вони все написали вдома, а потім вони продали чорт із цього. Сертифікація Java, специфічне обладнання для Java, книги Java, класи Java тощо. Тоді навіть переконали більшість університетів викладати її виключно, хоча це не дуже гарна мова, яка використовується для вивчення програмування.
Результатом стала популярність. Гроші можуть вирішити масу проблем.
На арені функціональної мови ми бачимо, що Haskell стає досить популярним. Я думаю, що більша частина популярності пов’язана з такими людьми, як дони, які пишуть корисні бібліотеки, і ніколи не припиняють маркетинг мовою. Щодня ви бачите кілька статей Haskell про програмування Reddit. Це тримає його у свідомості людей, поки вони нарешті вирішать: "Я спробую спробувати Haskell". Коли вони це роблять, вони бачать корисні речі, такі як веб-рамки, об’єктні бази даних, бібліотеки OpenGL та бібліотеки обробки XML. Це означає, що вони насправді можуть зробити щось корисне «прямо зараз». Так що між потенціалом бути продуктивним та чути про нього багато, Haskell здобув велику популярність.
У CL багато таких самих бібліотек, що і у Haskell, і це майже так само швидко, але ніхто про це не говорить, тому він "відчуває себе мертвим". Дійсно, #lisp набагато тихіше, ніж #haskell, але Lisp як і раніше дуже продуктивна мова з великою кількістю бібліотек. Жодна інша мова не має SLIME. Але маркетинг дуже важливий, і Haskell робить це краще, ніж Lisp або OCaml (і конкурує за ту ж базу користувачів).
Нарешті, деякі люди ніколи не "отримуватимуть" програмування, тому порушення їх ментальної моделі (змінні - це поля зі значеннями, код виконує зверху вниз) гарантує, що вони не використовують вашу мову. Цей тип програміста становить великий відсоток населення програми, тому це додатково обмежує можливу базу користувачів абстрактних мов, таких як Lisp, Haskell та OCaml.