Saya membaca kembali pertanyaan itu, dan saya pikir jawaban asli saya tidak menjawabnya. Ini percobaan lain.
Tidak, belum ada penelitian serius tentang linguistik bahasa pemrograman yang saya ketahui. Ada beberapa garis keturunan bahasa yang dilacak untuk dua cabang utama dan satu cabang:
- Prosedural. Von Neuman . Dijkstra . Fortran, Pascal, C.
- Berorientasi pada objek. Simula. Smalltalk.
- Fungsional McArthy . PELAT.
Bagi kita dengan puluhan tahun di lapangan, jelas bahwa bahasa pemrograman telah kawin, dan dengan demikian kita menemukan sebagian besar aspek dari paradigma murni dalam kebanyakan bahasa pemrograman modern, yang sekarang disebut bahasa pemrograman multi- paradigma : C #, Python, Java, .. .. Bahkan bahasa fungsional yang sebelumnya murni seperti OCaml dan Haskell menyertakan cukup prosedural (melalui monads ) dan fitur OO untuk memungkinkan Anda melakukan apa saja.
Apa yang terjadi, saya pikir, adalah menjadi jelas bahwa mahal (bila tidak konyol) harus beralih bahasa pemrograman hanya untuk dapat menerapkan paradigma yang tepat untuk subproblem yang diberikan.
Masih ada pengecualian untuk tren di bidang sistem yang sangat paralel dan asinkron. Di sana bahasa yang diutamakan benar-benar fungsional, seperti Erlang , mungkin karena lebih mudah untuk berpikir tentang sistem yang sedemikian kompleks secara fungsional.
Bagian non-paradigmatik dari evolusi adalah sintaksis. Bahasa-bahasa yang mendorong atau bahkan mengizinkan program-program cryptic menjadi semakin jarang digunakan ( APL , AWK , dan bahkan Perl dan LISP). Sintaks yang mendominasi saat ini adalah bahasa-bahasa yang lebih mudah dibaca (tidak mudah ditulis) seperti C (C ++, C #, Java, Objective-C, Scala, Go, IML, CSS, JavaScript, dan juga Python), Pascal (Fortran 90+ x), Smalltalk (Ruby), ML / Miranda (OCaml, Haskell, Erlang), dan SGML (HTML, XML).
Diagram ini tidak sepenuhnya akurat, dan tidak up to date, tetapi memberikan gambaran yang bagus tentang berapa banyak bahasa pemrograman yang terkonvergensi sejak era bahasa per situs tahun 1970-an.