Saya pikir masalah dengan OCaml adalah tidak terlalu berguna "di luar kotak". Alasan akhirnya mengapa orang menggunakan bahasa adalah karena memiliki perpustakaan yang mereka butuhkan. Dengan tidak adanya "out of the box", tidak ada yang cukup jauh dalam proyek untuk menyadari bahwa mereka perlu menulis perpustakaan. Hasilnya adalah bahasa tanpa perpustakaan, yang membuatnya sulit untuk menulis "aplikasi nyata".
Saya pikir inilah yang menderita OCaml - tidak ada yang mau memulai "proyek nyata" di dalamnya karena semua yang ada adalah bahasa pemrograman. Yay, saya bisa menambahkan dua dan dua dan mencetak hasilnya. Hasilnya adalah kumpulan perpustakaan yang sebagian besar adalah perangkat akademis (penulis mendapatkan gelar PhD dan melanjutkan), yang tidak terlalu membantu untuk mempraktikkan programmer.
(Saya tahu ada pekerjaan yang sedang dilakukan untuk mengubah ini, dengan proyek-proyek seperti "Termasuk Baterai". Kembali ke sini dalam 5 tahun, dan mungkin OCaml akan lebih populer.)
Ada beberapa pengecualian untuk aturan ini. Java dimulai dengan tidak ada perpustakaan, tetapi Sun membayar orang untuk menulis semuanya di rumah, dan kemudian mereka memasarkannya. Sertifikasi Java, perangkat keras khusus Java, buku Java, kelas Java, dll. Kemudian bahkan meyakinkan sebagian besar universitas untuk mengajarkannya secara eksklusif, meskipun itu bukan bahasa yang sangat baik untuk digunakan untuk mempelajari pemrograman.
Hasilnya adalah popularitas. Uang dapat memecahkan banyak masalah.
Di arena bahasa fungsional, kita dapat melihat bahwa Haskell menjadi sangat populer. Saya pikir sebagian besar popularitas adalah karena orang-orang seperti don yang menulis perpustakaan yang bermanfaat, dan tidak pernah berhenti menjual bahasa. Setiap hari Anda melihat beberapa artikel Haskell tentang Pemrograman Reddit. Ini membuatnya terjebak dalam pikiran orang-orang sampai mereka akhirnya memutuskan, "Saya akan mencoba Haskell." Ketika mereka melakukannya, mereka melihat hal-hal berguna seperti kerangka kerja web, database objek, pustaka OpenGL, dan pustaka pemrosesan XML. Ini berarti bahwa mereka benar-benar dapat melakukan sesuatu yang bermanfaat "Right Now". Jadi antara potensi untuk menjadi produktif dan banyak mendengar tentang itu, Haskell telah mendapatkan banyak popularitas.
CL memiliki banyak perpustakaan yang sama dengan Haskell dan hampir secepatnya, tetapi tidak ada yang membicarakannya, sehingga "terasa mati". Memang #lisp jauh lebih tenang daripada #haskell, tetapi Lisp masih merupakan bahasa yang sangat produktif dengan banyak perpustakaan. Tidak ada bahasa lain yang memiliki SLIME. Tetapi pemasaran sangat penting, dan Haskell melakukannya lebih baik daripada Lisp atau OCaml (dan bersaing untuk pengguna yang sama).
Akhirnya, beberapa orang tidak akan pernah "mendapatkan" pemrograman, jadi dengan menghancurkan model mental mereka (variabel adalah kotak dengan nilai, kode dijalankan dari atas ke bawah) akan memastikan bahwa mereka tidak menggunakan bahasa Anda. Jenis programmer ini adalah persentase besar dari populasi pemrograman, jadi ini lebih lanjut membatasi kemungkinan penggunaan bahasa abstrak seperti Lisp, Haskell, dan OCaml.