Saya akan memperluas komentar saya.
Saya pikir ada beberapa faktor yang mempengaruhi penggunaan Python dalam komputasi ilmiah, meskipun saya tidak berpikir ada poin sejarah yang pasti di mana Anda bisa mengatakan, "Ya, itulah alasan mengapa Python digunakan di atas Ruby / apa pun "
Sejarah awal
Python dan Ruby memiliki usia yang kira-kira sama - menurut Wikipedia, Python secara resmi pertama kali dirilis pada tahun 1991, dan Ruby pada tahun 1995.
Namun, Python menjadi terkenal lebih awal daripada Ruby, karena Google sudah menggunakan Python dan mencari pengembang Python pada pergantian milenium. Karena tidak seperti kami memiliki riwayat penggunaan bahasa pemrograman dan pengaruh mereka pada orang-orang yang menggunakannya, saya akan berteori bahwa adopsi awal Python oleh Google ini adalah motivator besar bagi orang-orang yang ingin berkembang lebih dari sekadar menggunakan Matlab, C ++, Fortran, Stata, Mathematica, dll.
Yaitu, maksud saya bahwa Google menggunakan Python dalam sistem di mana mereka memiliki ribuan mesin (pikirkan paralelisasi dan skala) dan terus-menerus memproses jutaan titik data (sekali lagi, skala).
Pertemuan acara
Komputasi ilmiah dulu dilakukan pada mesin khusus seperti SGI dan Crays (ingat?), Dan tentu saja FORTRAN (dan masih) banyak digunakan karena kesederhanaan relatifnya dan karena itu dapat dioptimalkan lebih mudah.
Dalam dekade terakhir ini, perangkat keras komoditas (barang-barang yang berarti Anda atau saya mampu tanpa jutawan) telah mengambil alih di bidang komputasi ilmiah dan besar-besaran. Lihatlah peringkat 500 teratas saat ini - banyak 'komputer super' peringkat teratas di dunia dibangun dengan perangkat keras Intel / AMD normal.
Python datang pada saat yang tepat karena, sekali lagi, Google mempromosikan Python, dan Google menggunakan perangkat keras komoditas, dan mereka memiliki ribuan mesin.
Plus jika Anda menggali beberapa artikel komputasi ilmiah lama, mereka mulai bermunculan sekitar era 2000-an.
Dukungan Sebelumnya
Inilah artikel yang ditulis untuk Perangkat Lunak dan Sistem Analisis Data Astronomi , yang ditulis pada tahun 2000, menyarankan Python sebagai bahasa untuk komputasi ilmiah.
Artikel ini memiliki kutipan tentang Python:
Python adalah bahasa pemrograman berorientasi objek yang ditafsirkan yang mulai menerima banyak perhatian dalam aplikasi ilmiah (Python, 1999). Ini karena Python, dan bahasa scripting pada umumnya, merupakan langkah logis berikutnya untuk banyak proyek ilmiah (Dubois 1994). Pertama, Python menyediakan bahasa pemrograman yang ditafsirkan yang dapat dilihat sebagai perpanjangan dari bahasa perintah sederhana yang sudah digunakan oleh program ilmiah
Kedua, Python mudah diintegrasikan dengan perangkat lunak yang ditulis dalam bahasa lain. Sebagai hasilnya, ini dapat berfungsi sebagai bahasa kontrol untuk mengarahkan program yang ada serta bahasa lem untuk menggabungkan sistem yang berbeda bersama-sama. Akhirnya, Python menyediakan banyak koleksi modul pihak ketiga, basis pengguna yang mapan, dan berbagai dokumentasi dalam bentuk buku dan referensi online. Untuk alasan ini, orang mungkin melihatnya sebagai versi yang sangat halus dan diperluas dari apa yang para ilmuwan sering coba capai ketika menulis penerjemah perintah mereka sendiri.
Jadi, Anda dapat melihat bahwa Python sudah memiliki daya tarik sejak 90-an, karena secara fungsional mirip dengan sistem yang ada pada saat itu, dan karena itu mudah untuk mengintegrasikan Python dengan hal-hal seperti C dan program yang ada. Berdasarkan isi artikel, Python sudah digunakan secara ilmiah sejak periode 1995-1996.
Perbedaan Pertumbuhan Popularitas
Popularitas Ruby meledak bersamaan dengan munculnya Ruby On Rails, yang pertama kali keluar pada tahun 2004. Saya masih kuliah ketika saya pertama kali mendengar desas-desus tentang Ruby, dan itu sekitar tahun 2005-2006. Django untuk Python dirilis sekitar jangka waktu yang sama (Juli 2005 menurut Wiki), tetapi fokus komunitas Ruby tampaknya sangat berpusat pada mempromosikan penggunaannya dalam aplikasi web.
Python, di sisi lain, sudah memiliki perpustakaan yang sesuai dengan komputasi ilmiah:
NumPy - NumPy secara resmi dimulai pada 2005, tetapi dua perpustakaan yang dibangunnya dirilis sebelumnya: Numeric (1995), dan Numarray (2001?)
BioPython - perpustakaan komputasi biologis untuk python, setidaknya sudah ada sejak tahun 2001, setidaknya
SAGE - Paket matematika dengan rilis publik pertama di awal 2005
Dan masih banyak lagi, meskipun saya tidak tahu banyak dari garis waktu mereka (selain hanya browsing situs unduhan mereka), tetapi Python juga memiliki SciPy (dibangun di atas NumPy, dirilis pada 2006), memiliki ikatan dengan R (bahasa statistik) di awal 2000-an, mendapat MatPlotLib, dan juga punya lingkungan shell yang sangat kuat di ipython.
ipython pertama kali dirilis pada awal 2000-an, dan telah memiliki banyak fitur yang ditambahkan sehingga membuatnya sangat bagus untuk komputasi ilmiah, seperti grafik matplotlib terintegrasi dan mampu mengelola cluster komputasi .
Dari artikel di atas:
Perlu juga dicatat sejumlah proyek komputasi ilmiah terkait Python lainnya. Ekstensi Python numerik menambahkan array cepat dan manipulasi matriks ke Python (Dubois 1996), MMTK adalah toolkit berbasis Python untuk pemodelan molekuler (Hinsen 1999), proyek Biopython sedang mengembangkan alat berbasis Python untuk penelitian sains kehidupan (Biopython 1999), dan Visualisasi Toolkit (VTK) adalah paket visualisasi canggih dengan Python bindings (VTK, 1999). Selain itu, proyek yang sedang berlangsung di komunitas Python sedang mengembangkan ekstensi untuk pemrosesan dan perencanaan gambar. Akhirnya, karya yang disajikan dalam (Greenfield, 2000) menjelaskan penggunaan Python dalam proyek-proyek di STScI.
Daftar baik paket ilmiah dan numerik untuk Python .
Jadi banyak dari itu mungkin karena sejarah awal, dan ketidakjelasan relatif Ruby hingga tahun 2000-an, sedangkan Python telah mendapatkan daya tarik berkat penginjilan Google.
Jadi jika Anda mengevaluasi bahasa scripting pada periode 1995 - 2000, apa yang sebenarnya Anda lihat? Ada Perl, yang mungkin cukup berbeda secara sintaksis sehingga orang tidak ingin menggunakannya, dan kemudian ada Python, yang memiliki sintaksis yang lebih jelas dan keterbacaan yang lebih baik.
Dan ya, mungkin ada banyak penguatan diri sendiri - Python sudah memiliki semua perpustakaan yang hebat dan berguna ini untuk komputasi ilmiah, sementara Ruby memiliki suara minoritas yang menganjurkan penggunaannya dalam sains, dan ada beberapa perpustakaan yang tumbuh, seperti SciRuby , tetapi Alat Python telah matang selama dekade terakhir.
Komunitas Ruby pada umumnya tampaknya jauh lebih tertarik untuk memajukan Ruby sebagai bahasa web, karena itulah yang benar-benar membuatnya dikenal, sedangkan Python memulai pada jalur yang berbeda, dan kemudian menjadi banyak digunakan sebagai bahasa web.