Ponownie przeczytałem pytanie i myślę, że moja pierwotna odpowiedź nie rozwiązała go. Oto kolejna próba.
Nie, nie było żadnych poważnych badań dotyczących językoznawstwa języków programowania, o których wiem. Wyśledzono linie językowe dwóch głównych gałęzi i podgałęzi:
Dla tych z nas, którzy mają dziesięciolecia w tej dziedzinie, oczywiste jest, że języki programowania są ze sobą powiązane, i że w ten sposób można znaleźć większość aspektów każdego czystego paradygmatu w większości współczesnych języków programowania, zwanych obecnie językami programowania multiparadigm : C #, Python, Java, .. .. Nawet wcześniej czyste języki funkcjonalne, takie jak OCaml i Haskell, zawierają wystarczającą liczbę procedur (przez monady ) i funkcje OO, abyś mógł zrobić wszystko.
Wydaje mi się, że stało się, że stało się oczywiste, że zmiana języków programowania była kosztowna (jeśli nie głupia), aby móc zastosować odpowiedni paradygmat do danego podproblemu.
Pozostaje wyjątek od trendu w obszarze wysoce równoległych i asynchronicznych systemów. Tam preferowane języki są ściśle funkcjonalne, jak Erlang , prawdopodobnie dlatego, że łatwiej jest myśleć o tak złożonych systemach funkcjonalnie.
Nieparadygmatyczną częścią ewolucji była składnia. Języki, które zachęcały, a nawet dopuszczały programy tajemnicze, są coraz rzadziej używane ( APL , AWK , a nawet Perl i LISP). Obecnie dominują składnie bardziej czytelnych (w przeciwieństwie do łatwych do zapisu) języków, takich jak C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript, a także Python), Pascal (Fortran 90+ x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang) i SGML (HTML, XML).
Ten schemat nie jest do końca dokładny i nie jest aktualny, ale daje dobre wyobrażenie o tym, ile języków programowania zbiegło się od epoki języka w latach siedemdziesiątych.