Myślę, że problem z OCaml polega na tym, że nie jest on zbyt przydatny „po wyjęciu z pudełka”. Ostatecznym powodem, dla którego ludzie używają języka, jest to, że ma on biblioteki, których potrzebują. Jednak bez niczego „po wyjęciu z pudełka” nikt nie wchodzi wystarczająco daleko w projekt, aby zdać sobie sprawę, że musi napisać bibliotekę. Rezultatem jest język bez bibliotek, co utrudnia pisanie „prawdziwych aplikacji”.
Myślę, że na tym cierpi OCaml - nikt nie zadaje sobie trudu, aby rozpocząć w nim „prawdziwe projekty”, ponieważ wszystko, co istnieje, to język programowania. Tak, mogę dodać dwa i dwa i wydrukować wynik. Rezultatem jest zbiór bibliotek, które są w większości akademickimi porzuconymi programami (autor uzyskał tytuł doktora i przeniósł się), co nie jest zbyt pomocne dla praktykujących programistów.
(Wiem, że trwają prace, aby to zmienić, z takimi projektami jak „Dołączone baterie”. Wróć tutaj za 5 lat, a być może OCaml będzie bardziej popularny).
Istnieją pewne wyjątki od tej reguły. Java zaczęła od braku bibliotek, ale Sun zapłaciła ludziom za napisanie ich wszystkich w domu, a potem zaczęli sprzedawać. Certyfikacja Java, sprzęt specyficzny dla Java, książki Java, klasy Java itp. Wtedy nawet przekonał większość uniwersytetów do nauczania wyłącznie, chociaż nie jest to zbyt dobry język do nauki programowania.
Rezultatem była popularność. Pieniądze mogą rozwiązać wiele problemów.
Na funkcjonalnej arenie językowej widać, że Haskell staje się dość popularny. Myślę, że większość popularności wynika z ludzi takich jak dony, którzy piszą użyteczne biblioteki i nigdy nie przestają sprzedawać langauge. Każdego dnia widzisz kilka artykułów Haskell na temat programowania Reddit. Utrzymuje to w pamięci ludzi, aż w końcu zdecydują: „Spróbuję Haskell”. Kiedy to robią, widzą przydatne rzeczy, takie jak frameworki internetowe, bazy danych obiektów, biblioteki OpenGL i biblioteki przetwarzania XML. Oznacza to, że mogą zrobić coś użytecznego „teraz”. Pomiędzy potencjałem produktywności a słyszeniem o tym dużo, Haskell zyskał dużą popularność.
CL ma wiele takich samych bibliotek jak Haskell i jest prawie tak szybki, ale nikt o tym nie mówi, więc „czuje się martwy”. Rzeczywiście #lisp jest znacznie cichsze niż #haskell, ale Lisp jest nadal bardzo produktywnym językiem z dużą ilością bibliotek. Żaden inny język nie ma SLIME. Ale marketing jest bardzo ważny, a Haskell robi to lepiej niż Lisp lub OCaml (i konkuruje o tę samą bazę użytkowników).
Wreszcie, niektórzy ludzie nigdy nie „dostaną” programowania, więc złamanie ich modelu mentalnego (zmienne to pola z wartościami, kod wykonuje się od góry do dołu) zapewni, że nie będą używać twojego języka. Ten typ programisty stanowi duży procent populacji programistów, co dodatkowo ogranicza możliwą bazę użytkowników języków abstrakcyjnych, takich jak Lisp, Haskell i OCaml.