Saya menemukan pertanyaan 2012 yang memiliki diskusi yang sangat baik tentang Julia sebagai alternatif untuk R / Python untuk berbagai jenis pekerjaan statistik.
Di sinilah letak Pertanyaan asli dari 2012 tentang janji Julia
Sayangnya Julia masih sangat baru saat itu & toolkit yang diperlukan untuk pekerjaan statistik agak primitif. Bug sedang disetrika. Distribusi sulit dipasang. Dll.
Seseorang memiliki komentar yang sangat tepat tentang pertanyaan itu:
Ini mengatakan, itu akan menjadi 5 tahun sebelum pertanyaan ini bisa dijawab di belakang. Sampai sekarang, Julia tidak memiliki aspek kritis berikut dari sistem pemrograman statistik yang dapat bersaing dengan R untuk pengguna sehari-hari:
Itu pada tahun 2012. Sekarang ini tahun 2015 dan tiga tahun telah berlalu, saya bertanya-tanya bagaimana orang berpikir Julia telah melakukannya?
Apakah ada pengalaman yang lebih kaya dengan bahasa itu sendiri & ekosistem Julia secara keseluruhan? Saya ingin sekali tahu.
Secara khusus:
- Apakah Anda menyarankan pengguna baru alat statistik untuk mempelajari Julia di atas R?
- Statistik kasus penggunaan seperti apa yang Anda sarankan kepada seseorang untuk menggunakan Julia?
- Jika R lambat pada tugas tertentu, masuk akal untuk beralih ke Julia atau Python?
Catatan: Pertama kali diposting 14 Juni 2015.
Jawaban:
Saya telah beralih ke Julia, dan inilah alasan pragmatis saya:
Yang mengatakan, saya masih sangat menyukai Rstudio, tetapi Juno baru di Atom benar-benar baik. Ketika tidak lagi dalam pengembangan yang berat dan stabil, saya dapat melihatnya lebih baik daripada Rstudio karena kemudahan plugin (contoh: ia memiliki plugin yang baik untuk beradaptasi dengan layar hidpi). Jadi saya pikir Julia adalah bahasa yang baik untuk dipelajari sekarang. Sejauh ini, itu bekerja dengan baik untuk saya. YMMV.
sumber
Saya pikir "pelajari X daripada Y" bukan cara yang tepat untuk merumuskan pertanyaan. Bahkan, Anda dapat mempelajari (setidaknya dasar-dasar) keduanya dan memutuskan alat yang tepat tergantung pada tugas nyata yang ada. Dan karena Julia mewarisi sebagian besar sintaks dan konsepnya dari bahasa lain, itu seharusnya sangat mudah untuk dipahami (juga Python, meskipun saya tidak yakin hal yang sama dapat dikatakan tentang R).
Jadi bahasa mana yang lebih cocok untuk tugas apa? Berdasarkan pengalaman saya dengan alat-alat ini saya akan menilai mereka sebagai berikut:
Untuk penelitian statistik murni yang dapat dilakukan dengan REPL dan beberapa skrip, R tampaknya menjadi pilihan yang sempurna. Ini secara khusus dirancang untuk statistik, memiliki sejarah alat terpanjang dan mungkin set perpustakaan statistik terbesar.
Jika Anda ingin mengintegrasikan statistik (atau, misalnya, pembelajaran mesin) ke dalam sistem produksi , Python sepertinya alternatif yang jauh lebih baik: sebagai bahasa pemrograman tujuan umum ia memiliki tumpukan web yang luar biasa, mengikat sebagian besar API dan perpustakaan secara literal untuk semuanya, dari membatalkan web untuk membuat game 3D .
Algoritma berkinerja tinggi jauh lebih mudah untuk ditulis dalam Julia . Jika Anda hanya perlu menggunakan atau menggabungkan pustaka yang ada seperti SciKit Learn atau e1071 yang didukung oleh C / C ++, Anda akan baik-baik saja dengan Python dan R. Tapi ketika datang untuk mem-backend sendiri dengan cepat, Julia menjadi penghemat waktu nyata: ini jauh lebih cepat daripada Python atau R dan tidak memerlukan pengetahuan tambahan tentang C / C ++. Sebagai contoh, Mocha.jl menambahkan kembali dalam Julia murni kerangka kerja pembelajaran mendalam Caffe , awalnya ditulis dalam C ++ dengan pembungkus dengan Python.
Juga jangan lupa bahwa beberapa perpustakaan hanya tersedia dalam beberapa bahasa. Misalnya hanya Python yang memiliki ekosistem matang untuk penglihatan komputer, beberapa algoritma pencocokan bentuk dan trasnformasi diimplementasikan hanya di Julia dan saya pernah mendengar tentang beberapa paket unik untuk statistik dalam kedokteran di R.
sumber
Dimensi tinggi dan masalah intensif komputasi.
Multiprocessing. Kemampuan paralel simpul tunggal Julia (
@spawnat
) jauh lebih nyaman daripada yang ada di python. Misalnya dalam python Anda tidak dapat menggunakan peta mengurangi kumpulan multiprosesing pada REPL dan setiap fungsi yang Anda ingin sejajar membutuhkan banyak boilerplate.Komputasi cluster.
ClusterManagers
Paket Julia memungkinkan Anda menggunakan cluster komputasi hampir seperti Anda menggunakan mesin tunggal dengan beberapa core. [Saya telah bermain dengan membuat ini terasa lebih seperti menulis di ClusterUtils ]Berbagi memori.
SharedArray
Objek Julia lebih unggul daripada objek memori bersama yang setara dalam python.PyCall
Modul Julia memberi Anda akses ekosistem python tanpa pembungkus - misalnya saya menggunakan ini untukpylab
. Ada sesuatu yang mirip dengan R, tapi saya belum mencobanya. Ada jugaccall
untuk perpustakaan C / Fortran.GPU. Pembungkus CUDA Julia jauh lebih berkembang daripada yang ada di python (Rs hampir tidak ada ketika saya memeriksa). Saya menduga ini akan terus menjadi kasus karena betapa lebih mudah untuk memanggil perpustakaan eksternal di Julia daripada di python.
Ekosistem. The
Pkg
penggunaan modul github sebagai backend. Saya percaya ini akan memiliki dampak besar pada pemeliharaan jangka panjang modul Julia karena membuatnya lebih mudah untuk menawarkan patch atau bagi pemilik untuk meneruskan tanggung jawab.Menulis kode cepat untuk masalah besar akan semakin tergantung pada komputasi paralel. Python secara inheren paralel tidak ramah (GIL), dan multiprosesor asli dalam R tidak ada AFAIK. Julia tidak mengharuskan Anda drop-down ke C untuk menulis kode pemain, sambil mempertahankan banyak nuansa python / R / Matlab.
Kelemahan utama Julia berasal dari python / R adalah kurangnya dokumentasi di luar fungsionalitas inti. python sangat matang, dan apa yang tidak dapat Anda temukan di dokumen biasanya pada stackoverflow. Sistem dokumentasi R cukup baik sebagai perbandingan.
Ya, jika Anda cocok dengan use case di bagian (b). Jika use case Anda melibatkan banyak pekerjaan yang heterogen
sumber