Tôi nghĩ vấn đề với OCaml là nó không hữu dụng "ngoài luồng". Lý do cuối cùng tại sao mọi người sử dụng một ngôn ngữ là vì nó có thư viện họ cần. Mặc dù vậy, không có gì "ngoài lề", không ai có đủ khả năng tham gia vào một dự án để nhận ra rằng họ cần phải viết một thư viện. Kết quả là một ngôn ngữ không có thư viện, khiến cho việc viết "ứng dụng thực" trở nên khó khăn.
Tôi nghĩ đây là điều mà OCaml phải chịu - không ai bận tâm để bắt đầu "các dự án thực sự" trong đó bởi vì tất cả đều có ngôn ngữ lập trình. Yay, tôi có thể thêm hai và hai và in kết quả. Kết quả là một tập hợp các thư viện chủ yếu là các phần mềm bỏ học thuật (tác giả đã lấy bằng tiến sĩ và tiếp tục), điều này không quá hữu ích cho các lập trình viên thực hành.
(Tôi biết có công việc đang được tiến hành để thay đổi điều này, với các dự án như "Bao gồm pin". Hãy quay lại đây sau 5 năm và có lẽ OCaml sẽ phổ biến hơn.)
Có một số trường hợp ngoại lệ cho quy tắc này. Java bắt đầu không có thư viện, nhưng Sun trả tiền cho mọi người để viết tất cả trong nhà, và sau đó họ tiếp thị nó. Chứng nhận Java, phần cứng dành riêng cho Java, sách Java, các lớp Java, v.v.
Kết quả là sự nổi tiếng. Tiền có thể giải quyết rất nhiều vấn đề.
Trong lĩnh vực ngôn ngữ chức năng, chúng ta có thể thấy Haskell đang trở nên khá phổ biến. Tôi nghĩ rằng hầu hết sự phổ biến là do những người như dons viết thư viện hữu ích và không bao giờ ngừng tiếp thị ngôn ngữ. Mỗi ngày bạn nhìn thấy một vài bài viết của Haskell về Lập trình Reddit. Điều này khiến nó bị mắc kẹt trong tâm trí của mọi người cho đến khi cuối cùng họ quyết định, "Tôi sẽ thử Haskell." Khi họ làm, họ thấy những thứ hữu ích như khung web, cơ sở dữ liệu đối tượng, thư viện OpenGL và thư viện xử lý XML. Điều này có nghĩa là họ thực sự có thể làm một cái gì đó hữu ích "Ngay bây giờ". Vì vậy, giữa tiềm năng để có năng suất và nghe về nó rất nhiều, Haskell đã trở nên nổi tiếng.
CL có nhiều thư viện giống như Haskell và gần như nhanh, nhưng không ai nói về nó, vì vậy nó "cảm thấy chết". Quả thực #lisp yên tĩnh hơn nhiều so với #haskell, nhưng Lisp vẫn là một ngôn ngữ rất năng suất với rất nhiều thư viện. Không có ngôn ngữ khác có SLIME. Nhưng tiếp thị là rất quan trọng và Haskell làm điều đó tốt hơn Lisp hoặc OCaml (và cạnh tranh cho cùng một cơ sở người dùng).
Cuối cùng, một số người sẽ không bao giờ "có được" lập trình, do đó, phá vỡ mô hình tinh thần của họ (biến là các hộp có giá trị, mã thực thi từ trên xuống dưới) sẽ đảm bảo rằng họ không sử dụng ngôn ngữ của bạn. Kiểu lập trình viên này chiếm tỷ lệ lớn trong dân số lập trình, vì vậy điều này càng hạn chế cơ sở người dùng có thể có của các ngôn ngữ trừu tượng như Lisp, Haskell và OCaml.