Jika tidak, mungkinkah memberikan perkiraan kasar untuk berapa lama saya harus menunggu sebelum mempertimbangkannya lagi?
Perkiraan kasar saya tentang berapa lama waktu yang dibutuhkan bahasa sains komputasi untuk matang sekitar satu dekade.
Contoh 1: SciPy dimulai pada tahun 2001 atau lebih. Pada tahun 2009, Scipy 0.7.0 dirilis, dan integrator ODE memiliki antarmuka ke VODE (yang setara dengan ode15s
, kira-kira; ode15s
berbasis NDF, VODE adalah BDF / Adams-Bashforth, tergantung). Dengan SciPy 0.10.0, sebuah antarmuka untuk dopri5
, yang kira-kira setara dengan MATLAB ode45
, sebuah metode pesanan Runge-Kutta ke-4 biasanya diperkenalkan sebagai metode integrasi numerik praktis pertama untuk para sarjana. SciPy 0.10.0 dirilis pada Desember 2011, dan butuh sekitar 10 tahun bagi mereka untuk memasukkan fitur MATLAB yang diperkenalkan ke setiap sarjana teknik yang saya tahu.
Contoh 2: Mathworks didirikan pada tahun 1984. Dalam rilis pertama mereka, mereka menggunakan port LAPACK ke C bernama JACKPAC (setelah Jack Little, seorang insinyur MathWorks yang menulisnya). Mereka tidak menggantinya dengan LAPACK sampai tahun 2000.
Julia mungkin membutuhkan waktu lebih sedikit, tetapi saya memperkirakan sekitar 10 tahun dari pendirian menjadi arus utama. (Sudah sekitar setahun atau lebih; mungkin 9-10 tahun, lalu?)
Apakah sistem perpustakaan Julia sepenuhnya berkembang di bidang-bidang ini? Secara khusus, apakah API lebih atau kurang stabil untuk jenis-jenis kegiatan itu, atau apakah saya akan menemukan bahwa kode lama saya cenderung rusak setelah memutakhirkan ke versi baru Julia?
Saya tidak menggunakan Julia, jadi ambil apa yang saya katakan dengan sebutir garam, karena saya hanya melihat Jeff Bezanson memberikan presentasi tentang Julia. Mereka membungkuk ke belakang untuk memudahkan menautkan dan menggunakan perpustakaan dari C, Python, dan Fortran. Jika Anda tidak dapat menemukan perpustakaan Julia yang melakukan apa yang Anda inginkan, tulis Julia shim untuk perpustakaan dalam bahasa yang lebih mapan. Akibatnya, saya tidak berpikir kurangnya perpustakaan akan menjadi perhatian. Saya pikir kekhawatiran akan memastikan bahwa perubahan pada fitur bahasa inti tidak menggigit Anda. Jika Anda melihat tonggak dalam repo Julia Git, Anda akan melihat bahwa tag "breaking" digunakan sedikit (12 kali dalam rilis 0,2, 5 kali dalam rilis 0,3). Bagi saya, itu menunjukkan bahwa bahasa inti masih berkembang, itulah sebabnya saya ragu untuk menggunakan bahasa itu sekarang.
EDIT: Aurelius membawa poin bagus:
Apa yang membuat Anda menganggap Julia akan benar-benar menjadi arus utama, dan tidak hanya mati dalam ketidakjelasan seperti banyak bahasa lainnya? SciPy / numpy mendapat / mendapat dukungan dari komunitas python yang terus berkembang, yang tidak dimiliki Julia.
Dalam jawaban asli, saya memutuskan untuk menghindari pertanyaan "Apakah Julia akan berhasil menjadi arus utama?" sebanyak mungkin. Gagal itu mudah; sukses itu sulit. Saya pikir perbandingan terbaik dari Julia adalah dengan bahasa komputasi teknis seperti MATLAB, R, dan Octave. Bahasa HPC (Chapel, Fortress, UPC, dll.) Memiliki audiens yang lebih sempit daripada bahasa komputasi teknis, dan bahasa tujuan umum (C, Python, C ++, dll.) Memiliki audiens yang lebih luas daripada bahasa komputasi teknis.
Sesuatu yang saya pikir membantu Julia adalah merancang kinerja tanpa mengorbankan ekspresi. Julia jauh lebih kompetitif dengan bahasa yang dikompilasi seperti C daripada MATLAB, R, atau bahkan Python. Tujuan desain ini juga merupakan fitur yang dapat menarik orang dari bahasa yang ada, seperti:
- Orang-orang yang peduli banyak tentang kinerja dan berasal dari bahasa seperti C dan Fortran, tetapi bersedia untuk mengorbankan kecil sedikit kinerja (mungkin faktor 2ish) untuk pergi dari bahasa dikompilasi untuk sedikit baris bahasa ditafsirkan (bersama dengan repl untuk pengembangan dan pengujian yang lebih cepat).
- Orang yang peduli dengan produktivitas tinggi dan berasal dari bahasa seperti Python, R, dan MATLAB, tetapi menginginkan lebih banyak kinerja. Ketika datang ke eksekusi, Python murni, MATLAB murni, dan R murni lambat. Pengembang dalam bahasa tersebut telah keluar dari cara mereka untuk membungkus perpustakaan dalam bahasa yang dikompilasi, tetapi Anda tidak dapat membungkus semuanya, dan pada titik tertentu, bahasa inti akan memperlambat Anda. Core Julia lebih cepat, yang memungkinkan Anda melakukan lebih banyak sains lebih cepat.
- Orang yang peduli dengan perangkat lunak bebas. Julia ditafsirkan dan bebas (demikian juga Python, Oktaf, dll.); MATLAB tidak.
Julia juga berusaha memfasilitasi paralelisme; Saya tidak merasa sangat memenuhi syarat untuk memperluas pada titik itu, dan saya tidak berpikir itu adalah daya tarik utama dari bahasa itu, tapi saya pikir itu adalah titik penjualan yang sedang mereka kerjakan, dan saya berharap orang lain dapat menjelaskannya.
Namun, bahkan dengan kemampuan teknis di pihak mereka, pembuat bahasa harus melakukan kerja keras untuk mempromosikan bahasa dan menginjili. Jeff Bezanson, Alan Edelman, Stephen Karpinski, dan Viral Shah bekerja sangat keras untuk membuat bahasa tersebut berhasil. Alan Edelman memiliki ikatan yang dalam dengan komunitas ilmu komputer, dan dia pernah mengerjakan proyek tingkat bahasa sebelumnya (terutama, ekstensi Star-P ke MATLAB). Jeff Bezanson telah melakukan sirkuit konferensi untuk mempromosikan Julia ke ilmuwan komputasi dan insinyur untuk sementara waktu. Di MIT, mereka telah melakukan pekerjaan yang baik dalam merekrut siswa dan staf (terutama, Steven G. Johnson) untuk berkontribusi dengan menambahkan perpustakaan ke Julia. Mereka punya artikel di Wired, dan berhasil mendapatkan artikel Wikipedia untuk diri mereka sendiri, semuanya hanya setelah satu tahun. Repo Git mereka memiliki ribuan bintang, ratusan garpu, dan ratusan jam tangan, jadi menurut standar sumber terbuka, proyek mereka telah sukses. Saya pikir mereka telah melakukan semua hal yang benar sejauh ini, jadi ini masalah mempertahankan upaya dan membangun komunitas. Mereka masih bisa gagal, tetapi sejauh ini menunjukkan kepada saya bahwa mereka memiliki peluang yang masuk akal untuk sukses.