Pertama-tama, saya ingin membuat pernyataan yang tidak biasa bahwa untuk perhitungan numerik, bahasa tingkat tinggi jauh lebih berguna dalam jangka panjang daripada bahasa tingkat rendah. Izinkan saya mengutip seorang peneliti dari Fraunhofer Institut yang bekerja dalam simulasi numerik yang digunakan dalam prakiraan cuaca.
Dalam dekade terakhir, CPU menjadi 1000 kali lebih cepat sedangkan algoritma menjadi 1000 * 1000 lebih cepat. Ini berarti, bahwa algoritma hari ini yang berjalan pada CPU kemarin akan mengalahkan algoritma kemarin yang berjalan pada CPU hari ini dengan faktor 1000.
Jelas, ada lebih banyak parameter untuk diperhitungkan sebagai kecepatan dan algoritma CPU, seperti disk atau RAM, tetapi pernyataan itu membantu kami untuk memahami bahwa, jika Anda memilih bahasa tingkat rendah, Anda fokus pada faktor yang salah (1000 bukannya 1000 * 1000).
Tentu saja, mengingat algoritma numerik tertentu yang dapat diharapkan C atau Fortran untuk mengalahkan OCaml atau Common Lisp oleh faktor (sebenarnya bukan itu) yang besar. Tetapi jika Anda benar-benar tertarik pada masalah numerik dan bersedia untuk meningkatkan algoritma, Anda harus memilih bahasa tingkat tinggi yang akan memungkinkan Anda untuk mengekspresikan ide-ide Anda di tingkat tinggi dan dengan mudah meningkatkan algoritma.
Sebagai catatan tambahan, jika Anda mempertimbangkan untuk menulis kode numerik dalam OCaml, Anda harus tahu tentang bagaimana OCaml meneruskan parameter ke fungsi, fungsi sebaris dan unbox floats. Semua ini dirinci dalam catatan Xavier Leroy .