Tôi đang đối mặt với sự lựa chọn có nên bắt đầu xây dựng các thành phần Haskell cho một ứng dụng sản xuất nhất định được thực hiện trong Ruby hay không.
Tôi nghiêng về Haskell vì nhiều lý do, chủ yếu là tốc độ (Haskell được biên dịch nhanh hơn 4-8 lần), độ trong suốt cao hơn (thông qua hệ thống loại Haskell) và khả năng tái cấu trúc an toàn hơn (hệ thống loại). Tôi đã viết một vài chương trình sản xuất và nguồn mở ở Haskell và rất thích viết nó.
Tính khả thi không phải là một vấn đề. Tôi đã chơi xung quanh với các thư viện cơ sở dữ liệu và khung web Haskell Snap như PostgreQuery.Simple và hài lòng rằng việc viết lại ứng dụng Rails và các chương trình phụ trợ khác nhau với Haskell là khả thi.
Vấn đề thực sự là thuê các lập trình viên khi chúng ta cần mở rộng nhóm phát triển, hoặc cuối cùng là giao toàn bộ trách nhiệm lập trình. Tìm lập trình viên trong Ruby dễ dàng hơn nhiều so với ở Haskell. Mặt khác, cộng đồng Haskell dường như đang phát triển và không quá khó để đào tạo các lập trình viên sửa đổi các phần của chương trình Haskell nếu bạn tiếp cận nó như một DSL (giống như Ruby on Rails). Hệ thống loại Haskell dường như cũng hứa hẹn sự hợp tác an toàn hơn nhiều so với Ruby năng động.
Trong bài tiểu luận "Đánh bại mức trung bình" ( http://www.paulgraham.com/avg.html ), Paul Graham lập luận rằng sử dụng một ngôn ngữ ưu việt có thể là một lợi thế quyết định. Nhưng khi nào thì nên bỏ qua việc sử dụng một ngôn ngữ ưu việt để dễ dàng thêm các lập trình viên vào nhóm của bạn?