Pernahkah anda berhasrat untuk membina aplikasi yang lebih pantas dan lebih cekap namun mendapati bahawa bahasa pengaturcaraan standard tidak dapat memenuhi keperluan anda?
Ini adalah apabila Bahasa Mojo mula dimainkan.
Mojo ialah bahasa pengaturcaraan baharu yang dibangunkan oleh Modular, sebuah syarikat yang pakar dalam infrastruktur AI.
Ia direka khusus untuk membolehkan pembangun membina aplikasi yang lebih pantas dan lebih mantap untuk beberapa kes penggunaan, termasuk pembangunan AI. Dalam siaran ini, kita akan melihat apa Mojo ialah, cara ia berfungsi, dan mengapa anda perlu menggunakannya pada projek anda yang seterusnya.
Asal-usul Mojo
Pencipta Mojo mengiktiraf keperluan untuk bahasa pengaturcaraan yang menggabungkan kebolehgunaan Python dengan kelajuan dan kecekapan C.
Dan, mereka mewujudkan bahasa yang membolehkan pembangun membina apl berprestasi tinggi tanpa perlu mempelajari bahasa penerangan perkakasan standard.
Hasilnya, mereka mencipta Mojo, yang bertujuan untuk serasi sepenuhnya dengan ekosistem Python sambil memberikan kelajuan tahap C.
Modular: Organisasi Di Sebalik Bahasa Mojo
Jadi, siapakah pencipta bahasa futuristik ini?
Modular ialah permulaan infrastruktur AI terkemuka dunia yang dicipta oleh Chris Lattner dan Tim Davis, yang bertemu di Google dan menyedari bahawa infrastruktur yang terlalu rumit dan berpecah-belah mengehadkan pengaruh global AI.
Matlamat dan objektif Modular adalah untuk memikirkan semula infrastruktur AI untuk meningkatkan kemanusiaan. Budaya dan prinsip mereka meletakkan premium pada pelanggan, perisian pengeluaran berkualiti tinggi dan memberikan hasil yang bermakna
Matlamat Mojo
Mojo direka bentuk untuk menyediakan model pengaturcaraan unik untuk pemecut pembelajaran mesin.
Modular menentukan bahawa Mojo harus membenarkan pengaturcaraan tujuan umum kerana CPU hari ini mempunyai tensor dan pemecut AI yang lain. Tambahan pula, kerana Python digunakan secara meluas dalam pembelajaran mesin dan bidang lain, Modular memilih untuk menyertai ekosistem Python.
Penggunaan Python memudahkan lagi reka bentuk bahasa tersebut. Oleh kerana majoriti sintaks telah ditentukan, syarikat sebaliknya boleh menumpukan pada membina mekanisme kompilasi dan menyediakan keupayaan pengaturcaraan khusus.
Ciri Penting untuk Dipertimbangkan
menyusun program
Jenis Progresif
Ciri jenis progresif Bahasa Mojo membolehkan pembangun menggunakan anotasi jenis untuk meningkatkan kecekapan dan semakan ralat.
Pembangun mungkin mereka bentuk kod yang lebih berkesan yang mengesan kesilapan pada masa penyusunan, menghapuskan pepijat dan meningkatkan kecekapan, dengan membekalkan maklumat jenis yang lebih teliti.
Abstraksi Kos Sifar
Pembangun boleh mengawal storan dengan memperuntukkan data sebaris ke dalam struktur terima kasih kepada abstraksi kos sifar yang disediakan oleh Bahasa Mojo.
Dengan menghapuskan keperluan untuk peruntukan memori tambahan, ciri ini meningkatkan kecekapan kod dan mengurangkan jumlah kod boilerplate.
Penalaan Auto Bahasa Bersepadu
Kefungsian autotala yang disepadukan bahasa dalam Bahasa Mojo membolehkan pembangun menentukan nilai ideal parameter secara automatik untuk mendapat manfaat daripada perkakasan sasaran.
Dengan fungsi ini, adalah lebih mudah untuk mengoptimumkan kod tanpa perlu melaraskannya secara manual untuk setiap gabungan perkakasan.
Bahasa Mojo ialah alat yang fleksibel dan berkesan untuk pembangunan AI kerana ia juga menyediakan keseluruhan kuasa MLIR (Perwakilan Perantaraan Berbilang Tahap), masa jalanan heterogen selari dan masa binaan yang cepat.
Selari
Mojo menggunakan MLIR, yang membolehkan pengaturcara menggunakan vektor, utas dan unit perkakasan untuk AI untuk penyelarasan. Mojo menyokong pemprosesan selari ke atas beberapa teras berbanding dengan pelaksanaan satu-benang Python.
Dengan kelajuan 35,000x berbanding Python, Mojo mengalahkan bahasa lain dari segi kelajuan.
Interoperability
Saling kendali dengan keseluruhan ekosistem Python adalah salah satu kelebihan unik Mojo. Ini menunjukkan bahawa anda boleh menggabungkan Mojo dengan mana-mana perpustakaan sewenang-wenangnya, seperti Numpy dan Matplotlib, serta kod yang dipesan lebih dahulu.
Sebagai contoh, anda boleh menggambarkan data dalam kod Mojo anda menggunakan perpustakaan Python Matplotlib.
Keluasan
Mojo juga agak fleksibel, membenarkan pengguna menambah langkah pra dan pasca pemprosesan pada model atau menukar langkah sedia ada dengan langkah baharu.
Untuk menambah baik model mereka dan timbunan Modular, pembangun boleh menggunakan gabungan kernel, penulisan semula graf, fungsi bentuk dan teknik lain.
Mengapa Anda Memilihnya Daripada Python?
Python ialah bahasa pembangunan AI yang popular kerana fleksibiliti dan perpustakaan yang disusun berprestasi tinggi. Walau bagaimanapun, ia jauh lebih perlahan daripada bahasa seperti C++.
Oleh itu, pengaturcara belajar menggunakan pembalut Python di sekitar bahasa yang lebih pantas untuk mengelakkan penggunaan Python untuk kawasan kritikal prestasi.
Ini membawa kepada isu dua bahasa, di mana model mesti diubah daripada Python kepada pelaksanaan yang lebih pantas, seperti ONNX atau skrip obor, yang tidak menyokong semua keupayaan Python. Python juga mempunyai masalah prestasi dan kekurangan pemprosesan selari yang baik.
Malah pengaturcara yang berpengalaman mendapati sukar untuk mengkaji, nyahpepijat dan menangani isu prestasi kerana dilema dua bahasa.
Terdapat juga sekatan asas kepada apa yang Python boleh lakukan kerana cara bahasa itu distrukturkan. Walaupun pelaksanaan dunia sebenar bagi algoritma yang menggunakan komponen asas mungkin kelihatan mudah, ia adalah jauh lebih sukar dan memerlukan penggunaan bahasa yang lebih pantas.
Bagaimana Bermula?
Anda boleh mula menggunakan Bahasa Mojo sekarang di Taman Permainan mereka untuk bermula. Taman Permainan berasaskan JupyterHub memberi pengajaran dan peluang untuk mencipta kod Mojo anda sendiri, walaupun Mojo masih dalam proses.
Anda boleh mendaftar untuk akses di laman web mereka untuk mengakses Taman Permainan.
Untuk mencapai matlamat prestasinya, Mojo menggunakan teknologi pengkompil generasi seterusnya dengan teknologi caching bersepadu, multithreading dan pengedaran awan.
Ia menambahkan primitif tambahan kepada pengaturcaraan sistem dan bercita-cita untuk menjadi superset Python dari semasa ke semasa. Untuk memulakan pengekodan dengan Mojo, gunakan pengkompil Mojo untuk menjalankan program Mojo dari terminal dengan cara yang sama seperti yang dilakukan oleh Python.
Bahasa ini sedang dibangunkan dan ditujukan kepada pembangun yang berpengalaman dalam pengaturcaraan sistem.
Wrap Up
Mojo dianggap sebagai superset Python. Dan, ia berpotensi untuk merevolusikan pengaturcaraan dengan menggabungkan kesederhanaan Python dengan prestasi C++ dan Rust.
Ia boleh memanfaatkan sepenuhnya Perpustakaan Python ekosistem, membolehkan pembangun mencipta perpustakaan berprestasi tinggi tanpa memerlukan C, C++, Rust atau CUDA.
Ia membolehkan pengeluaran kod mudah alih terima kasih kepada ciri pengaturcaraan meta autotala dan masa kompilasinya.
Walaupun ia masih dalam proses, ia berpotensi untuk menjadi alat pengaturcaraan yang menggerunkan dan mengubah industri pengaturcaraan. Jadi, kita harus menantikan perkembangan masa depan daripada Modular!
Chris Santos
Adakah anda fikir seseorang yang mempunyai pengetahuan asas hingga pertengahan boleh memulakan pengajian mereka dalam bahasa baharu ini? Atau adakah anda menasihati mempelajari bahasa yang lebih asas dahulu, seperti Javascript atau Python?
İlke Candan Bengi
Hello Chris, maaf atas maklum balas yang lewat! Saya percaya mempunyai pemahaman/pengalaman asas Python terlebih dahulu boleh membantu sebelum memulakan dengan Mojo.