Dunia pengaturcaraan sedang bergemuruh dengan keseronokan apabila Mojo, bahasa pythonik yang bercita-cita tinggi yang dibangunkan oleh pasukan Chris Lattner di Modular, telah mencapai pencapaian penting: integrasi yang lancar dengan Python. Perkembangan ini menandakan langkah penting ke hadapan bagi pembangun yang mencari alternatif berprestasi tinggi kepada Python tulen tanpa meninggalkan pangkalan kod sedia ada mereka.
Python Kini Boleh Memanggil Fungsi Mojo Secara Langsung
Integrasi ini berfungsi melalui mekanisme yang mudah di mana kod Mojo dikompil menjadi sambungan yang boleh dipanggil Python menggunakan PythonModuleBuilder
. Pembangun boleh menulis fungsi kritikal prestasi dalam Mojo dan mengimportnya terus ke dalam skrip Python, serupa dengan cara sambungan C berfungsi tetapi dengan sintaks yang lebih mudah. Proses persediaan telah diperkemas dengan ketara, memerlukan hanya arahan uv pip install
yang mudah untuk bermula.
Ujian awal mendedahkan peningkatan prestasi yang mengagumkan. Algoritma pengiraan nombor perdana yang ditulis dalam Mojo dilaksanakan dalam 0.011 saat berbanding 0.44 saat untuk kod Python yang setara - hampir 40 kali lebih pantas. Walaupun jika dibandingkan dengan pelaksanaan NumPy, Mojo menunjukkan kelebihan kelajuan yang besar untuk tugas pengkomputeran.
Keputusan Perbandingan Prestasi:
- Algoritma pengiraan nombor perdana (n=20,000):
- Python Tulen: 0.44 saat
- Pelaksanaan NumPy: 0.26 saat
- Mojo: 0.011 saat (~40x lebih pantas daripada Python)
- Pengiraan faktorial (n=10):
- Python: 5.0e-06 saat
- Mojo: 3.0e-05 saat
- Pengiraan faktorial (n=100):
- Python: Keputusan yang betul dalam 0.30 saat
- Mojo: Limpahan integer (mengembalikan 0)
Cabaran Teknikal Masih Wujud
Walaupun keputusan yang menjanjikan, integrasi ini mendedahkan beberapa kekasaran yang tipikal teknologi peringkat awal. Isu limpahan integer muncul semasa ujian, di mana pengiraan factorial(100) mengembalikan sifar dalam Mojo manakala Python mengendalikannya dengan betul. Ini menyerlahkan bahawa Mojo menggunakan integer lebar tetap berbanding aritmetik ketepatan sewenang-wenangnya Python, pilihan reka bentuk yang mengutamakan prestasi berbanding keserasian.
Pelaksanaan semasa juga mempunyai batasan praktikal, termasuk sokongan untuk hanya sehingga tiga argumen fungsi dalam sistem pengikatan Python. Kekangan ini mencerminkan sifat eksperimen teknologi dan mencadangkan bahawa kesediaan pengeluaran mungkin masih agak lama.
Batasan Teknikal Semasa:
- Pengikatan fungsi terhad kepada maksimum 3 argumen
- Integer lebar tetap (tiada ketepatan sewenang-wenangnya seperti Python )
- Isu integer overflow dengan pengiraan besar
- Sokongan Windows memerlukan WSL
- Pengkompil sumber tertutup (sumber terbuka dirancang untuk 2026)
- Sokongan GPU terhad (model NVIDIA dan AMD tertentu)
Komuniti Membahaskan Masa Depan Sumber Terbuka
Komuniti pembangun kekal berpecah tentang prospek jangka panjang Mojo, terutamanya mengenai sifat sumber tertutupnya. Walaupun Modular telah komited untuk menjadikan Mojo sumber terbuka pada 2026, ramai pembangun teragak-agak untuk melaburkan masa dalam mempelajari bahasa proprietari. Keraguan ini boleh difahami memandangkan pembiayaan modal teroka yang besar di sebalik projek dan kebimbangan tentang strategi monetisasi masa depan yang berpotensi.
Saya pada asasnya tidak percaya bahawa bahasa pengaturcaraan boleh berjaya di sebalik paywall atau penjaga pintu industri.
Perbandingan dengan bahasa sumber tertutup awal yang lain seperti Java dan C# memberikan beberapa preseden, walaupun mereka mempunyai ekosistem korporat utama yang menyokong penggunaan mereka dari awal.
Persaingan dalam Ruang Python Prestasi
Mojo menghadapi persaingan sengit daripada penyelesaian yang telah mantap seperti PyO3 untuk integrasi Rust, Cython untuk sambungan C, dan alat pengaturcaraan GPU yang sedang berkembang daripada NVIDIA. Titik jualan unik bahasa ini terletak pada asas MLIR nya, yang menjanjikan pengaturcaraan GPU merentas platform tanpa penguncian vendor kepada CUDA. Walau bagaimanapun, kelebihan ini mungkin berkurangan apabila syarikat lain, terutamanya NVIDIA, mengembangkan penawaran alat Python mereka.
Kejayaan Mojo berkemungkinan bergantung pada sama ada ia dapat memenuhi janji asalnya untuk menjadi superset Python yang sebenar sambil mengekalkan kelebihan prestasinya. Pada masa ini, bahasa ini telah beralih daripada pemasaran superset Python ke arah digambarkan sebagai bahasa keluarga Python, mencadangkan bahawa keserasian penuh mungkin lebih mencabar daripada yang dijangkakan pada mulanya.
Apabila teknologi semakin matang, pembangun akan memerhati dengan teliti untuk melihat sama ada Mojo dapat merapatkan jurang antara kemudahan penggunaan Python dan tuntutan prestasi beban kerja pengkomputeran moden.
Rujukan: Python can run Mojo now