Tôi từng khuyên rằng để học lập trình hàm, người ta nên học Haskell. Ngày nay, tôi nghĩ rằng lời khuyên đó không còn tối ưu nữa. Lý do Haskell khó là vì hệ thống kiểu dữ liệu khổng lồ, chứ không phải vì nó là lập trình hàm. Một con đường tốt hơn cho lập trình hàm sẽ là một ngôn ngữ giống lisp như Racket hoặc Clojure. Bằng cách đó, bạn có thể tập trung vào đệ quy và các mẫu thiết kế hàm thay vì hệ thống kiểu dữ liệu. (Tôi vẫn nghĩ rằng mọi người nên học Haskell vào một thời điểm nào đó, cả vì hệ thống kiểu dữ liệu và vì khía cạnh lập trình hàm). Với việc AI sẽ viết hầu hết mã trong tương lai, tôi nghĩ rằng kỹ năng của một lập trình viên là xác định một cách nghiêm ngặt hành vi nào được mong đợi, và sau đó để AI lo liệu điều đó. Haskell là một trong những ngôn ngữ hàng đầu cho các đặc tả nghiêm ngặt. Cũng có một chút chuyện vui về tôi: Tôi đã sử dụng Clojure trong sản xuất vào một thời điểm nào đó chỉ vì tôi có thể và tôi đã chán các ngôn ngữ thông thường. Tôi gần như không thể bị sa thải, vì vậy sếp của tôi phải chấp nhận điều đó mặc dù ông ấy (đúng) hoài nghi về việc sử dụng một ngôn ngữ mà rất khó tuyển dụng. Vâng, tôi đã là lập trình viên đó trước đây.
3,06K