Tôi đọc lại câu hỏi và tôi nghĩ câu trả lời ban đầu của tôi không giải quyết được. Đây là một thử khác.
Không, chưa có nghiên cứu nghiêm túc nào về ngôn ngữ học lập trình mà tôi biết. Đã có dòng dõi ngôn ngữ truy tìm cho hai nhánh chính và một nhánh con:
Đối với những người trong chúng ta có nhiều thập kỷ trong lĩnh vực này, rõ ràng là các ngôn ngữ lập trình đã xen kẽ, và do đó người ta tìm thấy hầu hết các khía cạnh của bất kỳ mô hình thuần túy nào trong hầu hết các ngôn ngữ lập trình hiện đại, giờ đây được gọi là ngôn ngữ lập trình đa hướng : C #, Python, Java, .. .. Thậm chí trước đó thuần túy ngôn ngữ chức năng như OCaml và Haskell bao gồm đầy đủ thủ tục (thông qua monads ) và OO tính năng để cho bạn làm gì cả.
Điều tôi đã xảy ra, tôi nghĩ, rõ ràng là rất tốn kém (khi không ngớ ngẩn) khi phải chuyển đổi ngôn ngữ lập trình chỉ để có thể áp dụng một mô hình đúng cho một bài toán con nhất định.
Vẫn còn một ngoại lệ đối với xu hướng trong lĩnh vực các hệ thống không đồng bộ và không đồng bộ cao. Có các ngôn ngữ ưa thích có chức năng nghiêm ngặt, như Erlang , có lẽ bởi vì dễ dàng hơn để suy nghĩ về các hệ thống phức tạp như vậy về mặt chức năng.
Phần không nghịch lý của sự tiến hóa đã được dựa trên cú pháp. Các ngôn ngữ khuyến khích hoặc thậm chí cho phép các chương trình mật mã đã ngày càng ít được sử dụng ( APL , AWK , và thậm chí Perl và LISP). Các cú pháp thống trị ngày nay là những ngôn ngữ dễ đọc hơn (trái ngược với các ngôn ngữ dễ viết) như C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript và cả Python), Pascal (Fortran 90+ x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang) và SGML (HTML, XML).
Sơ đồ này không hoàn toàn chính xác, và nó không cập nhật, nhưng nó cho một ý tưởng tốt về bao nhiêu ngôn ngữ lập trình đã hội tụ kể từ kỷ nguyên ngôn ngữ trên mỗi trang web của những năm 1970.