Beberapa pemikiran tambahan.
Bahasa pemrograman 'per se' hanya alat. Semua bahasa dirancang untuk membuat beberapa jenis konstruksi lebih mudah dibangun daripada yang lain. Dan pengetahuan dan penguasaan bahasa pemrograman lebih penting dan efektif daripada fitur bahasa itu dibandingkan dengan yang lain.
Sejauh yang saya bisa lihat ada dua dimensi dari pertanyaan ini. Dimensi pertama adalah kemampuan untuk mengeksplorasi, membangun bukti konsep atau model dengan cepat, akhirnya memiliki alat yang cukup untuk mempelajari apa yang sedang terjadi (seperti tes statistik, grafik, alat pengukuran, dll). Jenis kegiatan ini biasanya disukai oleh para peneliti dan ilmuwan data (saya selalu bertanya-tanya apa artinya itu, tetapi saya menggunakan istilah ini untuk definisi yang longgar). Mereka cenderung mengandalkan instrumen yang terkenal dan diverifikasi, yang dapat digunakan untuk bukti atau argumen.
Dimensi kedua adalah kemampuan untuk memperluas, mengubah, meningkatkan atau bahkan membuat alat, algoritma atau model. Untuk mencapai itu, Anda memerlukan bahasa pemrograman yang tepat. Kira-kira semuanya sama. Jika Anda bekerja untuk sebuah perusahaan, daripada Anda banyak bergantung pada infrastruktur perusahaan, budaya internal dan pilihan Anda berkurang secara signifikan. Juga, ketika Anda ingin menerapkan algoritma untuk penggunaan produksi, Anda harus memercayai implementasinya. Dan menerapkan dalam bahasa lain yang tidak Anda kuasai tidak akan banyak membantu Anda.
Saya cenderung menyukai jenis aktivitas pertama ekosistem R. Anda memiliki komunitas yang hebat, seperangkat alat yang sangat besar, bukti bahwa alat ini berfungsi seperti yang diharapkan. Juga, Anda dapat mempertimbangkan Python, Oktaf (untuk beberapa nama), yang merupakan kandidat yang dapat diandalkan.
Untuk tugas kedua, Anda harus berpikir sebelumnya pada apa yang benar-benar Anda inginkan. Jika Anda ingin alat siap produksi yang kuat, maka C / C ++, Java, C # adalah kandidat yang hebat. Saya menganggap Python sebagai warga negara kedua dalam kategori ini, bersama dengan Scala dan teman-teman. Saya tidak ingin memulai perang api, itu pendapat saya saja. Tetapi setelah lebih dari 17 tahun sebagai pengembang, saya cenderung memilih kontrak yang ketat dan pengetahuan saya, daripada kebebasan untuk melakukan apa pun yang Anda pikirkan (seperti yang terjadi dengan banyak bahasa dinamis).
Secara pribadi, saya ingin belajar sebanyak mungkin. Saya memutuskan bahwa saya harus memilih cara yang sulit, yang berarti menerapkan semuanya dari awal sendiri. Saya menggunakan R sebagai model dan inspirasi. Ia memiliki banyak harta di perpustakaan dan banyak pengalaman yang disuling. Namun, R sebagai bahasa pemrograman adalah mimpi buruk bagi saya. Jadi saya memutuskan untuk menggunakan Java, dan tidak menggunakan perpustakaan tambahan. Itu hanya karena pengalaman saya, dan tidak ada yang lain.
Jika Anda punya waktu, hal terbaik yang dapat Anda lakukan adalah meluangkan waktu dengan semua hal ini. Dengan cara ini Anda akan mendapatkan jawaban terbaik untuk diri Anda, cocok untuk Anda. Dijkstra pernah berkata bahwa alat memengaruhi cara Anda berpikir, jadi disarankan untuk mengetahui alat Anda sebelum membiarkan mereka membuat model bagaimana Anda berpikir. Anda dapat membaca lebih lanjut tentang itu di makalahnya yang terkenal bernama The Humble Programmer