Python adalah waktu untuk memberi ruang. Tentang prospek Julia

Selamat pagi, Habr!

Klip literatur Python kami terus diisi ulang dengan buku - buku dari berbagai tingkatan. Namun, hari ini kami ingin memperkenalkan artikel ini hari ini, penulis yang menganggap Julia sebagai alternatif yang layak dan menjanjikan untuk Python. Baca, ikuti tautannya dan jangan lupa untuk memilih.



Jika Julia masih tampak misterius bagi Anda, jangan khawatir. Foto oleh Julia Caesar di Unsplash



Jangan salah paham terhadap saya. Popularitas Python masih dijamin oleh dukungan tak tergoyahkan dari komunitas, yang mencakup spesialis dalam ilmu komputer, ilmu data dan kecerdasan buatan.

Namun, jika Anda memiliki kesempatan untuk duduk di sebuah jamuan makan malam di perusahaan orang-orang ini, Anda akan melihat betapa marahnya mereka karena kelemahan Python. Tidak hanya bahasa ini sangat lambat, tetapi juga membutuhkan pengujian yang luas, dan masih memberikan kesalahan runtime, meskipun pengujian sebelumnya. Ini cukup untuk membuat Python kesan yang menyedihkan.

Itulah sebabnya semakin banyak programmer beralih ke bahasa lain, di antaranya Julia, Go pantas disebutkan secara khusus.dan Karat. Julia sempurna untuk masalah matematika dan teknis, Go untuk tugas-tugas modular, dan Rust sangat diperlukan dalam pemrograman sistem.

Karena ilmu data dan kecerdasan buatan harus berurusan dengan sejumlah masalah matematika, Julia adalah anugerah bagi mereka. Bahkan dengan pemeriksaan yang sangat kritis, ternyata Julia memiliki kelebihan sedemikian rupa sehingga Python tidak bisa menentang.

Zen versus kerakusan Julia,

menciptakan bahasa pemrograman baru, penulisnya berusaha untuk mempertahankan kekuatan dan menghilangkan kekurangan bahasa yang lebih tua.

Dalam nada inilah Guido van Rossum bertindak pada akhir 1980-an, menciptakan Python: ia berusaha meningkatkan ABC. Yang terakhir terlalu sempurnauntuk bahasa pemrograman - dan karena kekakuan seperti itu, ternyata mudah dipelajari, tetapi sulit digunakan dalam proyek nyata.

Python, sebaliknya, sangat pragmatis. Ini terbukti dari kode Zen Python , yang mencerminkan niat para penciptanya:

Cantik lebih baik dari yang jelek.
Eksplisit lebih baik daripada implisit.
Sederhana lebih baik daripada kompleks.
Kompleks lebih baik daripada membingungkan.
Dikerahkan lebih baik daripada bersarang.
Jarang lebih baik daripada padat.
Masalah keterbacaan.
Kasus khusus tidak begitu istimewa untuk melanggar aturan.
Pada saat yang sama, kepraktisan lebih penting daripada ketidaksempurnaan.
[...]


Python telah mempertahankan banyak manfaat ABC: misalnya, keterbacaan, kesederhanaan, dan kejelasan untuk pemula. Tapi Python jauh lebih dapat diandalkan daripada ABC, dan jauh lebih baik berlaku di kehidupan nyata.

Dalam arti yang sama, pencipta Julia ingin menjaga yang terbaik dari bahasa lain dan menyingkirkan semua yang buruk. Tetapi ambisi Julia jauh dari terbatas pada ini: tujuannya bukan untuk menggantikan satu bahasa, tetapi untuk melampaui semua bahasa.

Inilah yang pencipta Julia mengatakan tentang hal ini :

: . . C Ruby. Lisp, , Matlab. , Python, R, Perl, , Matlab, , shell. , , . , .


Julia berupaya menggabungkan semua kelebihan dari bahasa yang ada, tetapi tidak untuk berkompromi, yang mengharuskan mengambil bahasa-bahasa ini dan kekurangannya. Selain itu, meskipun Julia adalah bahasa yang muda, ia telah mencapai banyak tujuan yang ditetapkan oleh penciptanya.

Apa Julia pengembang seperti The Julia

berbagai

dapat digunakan untuk apa saja dari mesin sederhana belajar aplikasi untuk simulasi superkomputer kolosal. Python juga mampu melakukan ini sampai batas tertentu, tetapi entah bagaimana Python telah beradaptasi dengan tugas-tugas ini.
Sebaliknya, Julia diciptakan hanya untuk pekerjaan seperti itu. Dari awal.

Kecepatan

Para pencipta Julia ingin membuat bahasa tidak kalah cepat dengan C - tetapi penciptaan yang mereka buat ternyata bekerja lebih cepat. Meskipun telah menjadi lebih mudah untuk mempercepat Python dalam beberapa tahun terakhir, kinerjanya masih sangat jauh dari Julia.

Pada 2017, Julia bahkan memasuki Petaflop Club , klub bahasa kecil yang, dengan kinerja puncak, dapat berjalan dengan kecepatan di atas satu petaflop per detik. Selain Julia, klub ini sekarang hanya mencakup C, C ++ dan Fortran.

Komunitas

Python, yang berusia lebih dari 30 tahun, memiliki komunitas kolosal dan sangat andal. Hampir tidak ada pertanyaan tentang Python, jawaban yang tidak ditemukan dalam satu permintaan pencarian di Google.

Sebaliknya, komunitas Julia sangat kecil. Ya, ini berarti Anda harus menggali lebih banyak secara aktif untuk menemukan jawabannya, tetapi dengan pencarian seperti itu Anda bisa pergi ke orang yang sama berulang kali. Dan hubungan programmer profesional yang tak ternilai terikat.

Konversi Kode

Untuk menulis kode dalam Julia, Anda bahkan tidak perlu tahu satu perintah dalam bahasa ini. Anda tidak hanya dapat menggunakan kode Python dan C di dalam Julia, Anda bahkan dapat menggunakan kode Julia di dalam Python !

Tak perlu dikatakan, dalam situasi ini tidak sulit untuk menambal titik lemah dari kode Python Anda pada Julia. Atau untuk mempertahankan produktivitas sementara Anda hanya berkenalan dengan Julia.

Perpustakaan



Perpustakaan telah dan tetap menjadi kekuatan Python. FotoSusan Yin di Unsplash

Ini adalah salah satu kebajikan terpenting Python - ia memiliki banyak perpustakaan yang didukung dengan baik. Julia tidak memiliki banyak perpustakaan, dan pengguna mengeluh bahwa perpustakaan mereka (sejauh ini) tidak didukung dengan baik.

Tetapi, disesuaikan dengan fakta bahwa Julia adalah bahasa yang sangat muda dengan sumber daya yang terbatas, jumlah perpustakaan yang ada sangat mengesankan. Selain fakta bahwa Julia diperkaya dengan perpustakaan baru, kami mencatat bahwa bahasa tersebut dapat berlabuh dengan perpustakaan untuk C dan Fortran, misalnya, untuk memproses grafik.

Tipe dinamis dan statis

Python adalah pengetikan dinamis 100%. Ini berarti bahwa program saat runtime memutuskan, misalnya, apakah variabel yang diberikan adalah bilangan bulat atau angka floating-point.

Terlepas dari kenyataan bahwa praktik ini sangat nyaman bagi pemula, semua jenis bug menembus program karenanya. Akibatnya, kode Python perlu diuji dalam semua skenario yang mungkin, dan ini adalah tugas yang cukup bodoh, memakan waktu.

Karena pencipta Julia juga berusaha membuat bahasa mereka mudah dipelajari, Julia sepenuhnya mendukung pengetikan dinamis. Tapi, tidak seperti Python, Julia juga dapat memperkenalkan tipe statis - dalam bentuk di mana mereka hadir, misalnya, dalam C atau Fortran.
Ini dapat menghemat banyak waktu. Sekarang, alih-alih mencari alasan untuk fakta bahwa kode tersebut tidak diuji, Anda dapat dengan mudah menentukan jenis yang sesuai.

Data: kami berinvestasi dalam bahasa saat ini



Jumlah kecil pertanyaan yang ditandai Julia (kiri) dan Python (kanan) di StackOverflow.

Terlepas dari kenyataan bahwa semua hal di atas terdengar sangat optimis, harus diingat bahwa Julia masih bayi dibandingkan dengan Python.

Ada indikator yang bagus: jumlah pertanyaan di StackOverflow: Python saat ini disebutkan sekitar dua puluh kali lebih sering daripada Julia!

Ini sama sekali tidak menunjukkan ketidakpopuleran Julia - melainkan, programmer hanya perlu waktu untuk membiasakan diri dengan bahasa baru.

Nilailah diri Anda sendiri - maukah Anda sendiri menulis semua kode dalam bahasa yang sama sekali baru? Tidak, Anda lebih suka menunda bahasa baru sampai Anda dapat mencobanya di proyek baru. Karena hal ini, ada penundaan antara keluaran bahasa dan praktiknya yang meluas; ini terjadi dengan semua bahasa pemrograman.

Tetapi, jika Anda menguasai Julia sekarang, dan itu mudah, mengingat seberapa banyak konversi bahasa didukung di Julia, ini akan menjadi investasi Anda di masa depan. Semakin banyak orang pindah ke Julia, Anda akan mendapatkan pengalaman yang diperlukan dan dapat menjawab pertanyaan mereka. Selain itu, kode Anda akan berubah menjadi cukup tahan lama.

Intinya: Berlatihlah Julia, dan biarkan itu menjadi hobi Anda

Empat puluh tahun yang lalu, kecerdasan buatan tidak lebih dari fenomena niche. Baik investor maupun industri tidak mempercayainya, dan banyak teknologi AI tampak canggung dan tidak nyaman untuk digunakan. Tetapi mereka yang mempelajari AI bahkan menjadi raksasa hari ini - hari ini gaji mereka hampir sama dengan para atlet top.

Demikian pula, Julia masih sangat ceruk sekarang. Tetapi ketika dia dewasa, mereka yang beralih ke dia di muka akan menjadi pemenang terbesar.

Saya tidak berjanji bahwa dalam sepuluh tahun Anda pasti akan menyapu uang dengan sekop jika Anda sekarang belajar Julia. Tetapi peluang Anda untuk perkembangan acara seperti itu akan meningkat.

Pikirkan tentang hal ini: hari ini, sebagian besar programmer menggunakan bahasa Python dalam resume mereka. Beberapa tahun lagi akan berlalu, dan kita akan melihat lebih banyak programmer piton di pasar tenaga kerja. Tetapi, jika pertumbuhan permintaan untuk Python di perusahaan melambat, maka prospek programmer-Python akan mulai memburuk. Awalnya, perlahan, tapi tak terhindarkan.

Di sisi lain, Anda dapat benar-benar menonjol jika Anda menentukan Julia di CV Anda. Karena, kita akan jujur, tetapi bagaimana Anda berbeda dari seluruh pasukan pitoners dengan siapa Anda harus bersaing? Hampir tidak ada. Tetapi programmer dengan pengetahuan Julia akan tetap spesialis yang relatif langka, bahkan di masa depan selama tiga tahun ke depan.

Memiliki keterampilan Julia, Anda tidak hanya menunjukkan bahwa minat Anda tidak terbatas pada persyaratan "untuk bekerja". Anda juga menunjukkan bahwa Anda bersedia untuk belajar dan memiliki gagasan yang lebih luas tentang apa artinya menjadi seorang programmer. Dengan kata lain, ada baiknya berurusan dengan Anda.
Anda - dan para ahli Julia lainnya - dapat berubah menjadi bintang di masa depan, dan Anda tahu itu. Atau, sebagai salah satu pencipta Julia pada 2012 mengatakan:

, , . , . , 1.0 . , , Julia. 90% , , . , – , – , .

All Articles