Ada beberapa alasan kenapa diciptakan banyak bahasa pemrograman. Alasan pertamanya, karena bahasa pemrograman yang ada tidak dapat memenuhi kebutuhan dari penggunanya. Misalnya, bahasa pemrograman Java diciptakan untuk memenuhi keinginan para programmer agar dapat menulis kode yang berjalan dalam banyak platform dengan mudah (jargon yang dibawa oleh Java adalah: Write Once, Run Anywhere). Bahasa C maupun C++ yang populer pada masa itu tidak dapat memenuhi hal ini, karena banyaknya sistem operasi tertutup pada masa itu, di mana masing-masing vendor memiliki cara tersendiri untuk berinteraksi dengan sistem.
Alasan selanjutnya adalah karena adanya permasalahan yang memerlukan cara penyelesaian yang unik. Seperti kata pribahasa programmer,
when all you have is hammer, everything starts to look like a nail
Bahasa pemrograman yang kita gunakan berpengaruh dalam cara kita menyelesaikan masalah. Kalau kita hanya mengerti orientasi objek, maka segala permasalahan (termasuk yang cocok diselesaikan dengan imparatif) akan kita selesaikan dengan paradigma OO. Tidak ideal pastinya.
Tapi menguasai banyak bahasa pemrograman juga terlalu makan banyak waktu dan tidak praktikal. Perlu bertahun-tahun hanya untuk benar-benar mengetahui sebuah bahasa pemrograman.
Perlu banyak pengalaman dalam mengembangkan perangkat lunak yang berukuran besar dan digunakan banyak orang. Pengalaman tersebut hanya bisa didapatkan dalam dunia akademis atau bisnis. Tapi dosen (atau manajer) mana yang akan memberikan lampu hijau untuk menggunakan Haskell, OCaml, Clojure, atau bahasa unik lainnya dalam proyek yang bernilai besar?
Jelas kita perlu tahu banyak bahasa, minimal satu bahasa untuk setiap paradigma, tetapi akan sangat tidak praktis (atau bahkan tidak mungkin sama sekali) untuk menguasai banyak bahasa pemrograman. Yang kita perlukan dari mempelajari berbagai paradigma adalah sudut pandang baru untuk menyelesaikan masalah. Ingat, pada dasarnya programmer itu dibayar untuk menyelesaikan masalah. Dan sebuah solusi yang baik adalah solusi yang mempertimbangkan berbagai sudut pandang untuk menyelesaikan sebuah masalah. Sebagai ilustrasi, apakah kamu berani berobat ke seorang dokter yang melakukan operasi untuk mengobati semua penyakit (termasuk masuk angin)?
Selain itu juga sebelum mempelajari suatu bahasa pemrograman yang baru, kita juga perlu mengetahui untuk apa kita mempelajarinya. Apakah kita ingin membuat sebuah aplikasi atau pun sebuah program yang berbasis jaringan.
Refensi
E.W.Dijkstra Archive: The Humble Programmer (EWD 340)
http://delivery.acm.org/10.1145/1790000/1787249/p41-misa.pdf?ip=118.97.95.23&acc=OPEN&CFID=184685991&CFTOKEN=52171051&__acm__=1351235618_5b2c7a605d5ff82d55b8dc7e2d6d0d29
https://bertzzie.com/post/6/haruskah-kita-menguasai-banyak-bahasa-pemrograman