Trước hết - vì trình biên dịch phải làm nhiều hơn nữa. Nếu bạn muốn tạo trình biên dịch bắt buộc, bạn gần như có thể thực hiện chuyển đổi 1-1 thành trình biên dịch mã và mã được tạo ra sẽ có tốc độ chấp nhận được (chắc chắn - có thể có nhiều việc phải làm nhưng đó là 'cơ bản' tổng hợp 1-1 + tối ưu hóa). Trình biên dịch hàm phải xử lý nội tuyến tốt, tối ưu hóa cuộc gọi đuôi, v.v. Do đó, việc triển khai các ngôn ngữ chức năng chậm hơn rất nhiều so với C / C ++ / ... trong quá khứ (tuy nhiên chúng đạt được tốc độ cao hơn mỗi lần lặp khi trình biên dịch đang trở nên tốt hơn).
Thứ hai - các lập trình viên đã quá quen với việc tuyên bố rằng họ không thể 'chấp nhận' "không có cách tiếp cận ... trạng thái". Chắc chắn - thiếu trạng thái không hữu ích trong từng điều kiện nhưng thiếu trạng thái (toàn cầu) không có nghĩa là thiếu trạng thái cục bộ.
Thứ ba - lập trình chức năng không có câu chuyện hay đằng sau nó. OOP có câu chuyện hay khi các đối tượng ánh xạ tới các danh từ và mức độ trực quan của nó. Sau đó, bạn biết rằng nó không đơn giản vì bạn không thể tạo một lớp Manager
dưới dạng lớp con Employee
như Employee
có thể được quảng bá Manager
và bạn phải chơi xung quanh các nhà trang trí. Các chương trình chức năng có câu chuyện trong toán học là IMHO hữu ích hơn nhưng ít thị trường hơn.
Theo nội bộ từ góc độ máy tính - không có sự khác biệt giữa tính toán song song và đồng thời, nhiều lập trình viên không thấy sự khác biệt và nhiều ngôn ngữ có cùng nguyên thủy để xử lý cả hai. Nhờ thiếu trạng thái cục bộ và các luồng nhẹ trong các ngôn ngữ lập trình chức năng, việc song song hóa thuật toán dễ dàng hơn nhiều. Tuy nhiên, lập trình đồng thời không được thực hiện tự động dễ dàng hơn vì đồng thời là về trạng thái toàn cầu.
Cuối cùng - có rất nhiều chương trình cũ được viết theo phong cách suy luận. Ngay cả việc chuyển từ ngôn ngữ mệnh lệnh sang ngôn ngữ mệnh lệnh cũng đơn giản hơn nhiều so với ngôn ngữ chức năng.
Theo như tôi biết, các ngân hàng đầu tư bắt đầu nắm bắt các chương trình chức năng trong nội bộ để họ tham gia vào XXI c. (trong khu vực rất quan trọng mặc dù ẩn) - vì vậy họ có được động lực.
Tái bút Mặc dù tôi tin rằng các chương trình chức năng "tốt hơn" có nghĩa là chúng che giấu sự phức tạp tốt hơn, nhưng các cách tiếp cận khác không có nghĩa là không có các lĩnh vực như các kịch bản vốn là bắt buộc.