3 poin oleh GN⁺ 2025-09-07 | 1 komentar | Bagikan ke WhatsApp
  • Chris Lattner adalah pengembang inti LLVM dan bahasa Swift, dan saat ini sedang mengembangkan bahasa baru Mojo untuk memaksimalkan kinerja perangkat keras ML modern
  • Mojo dirancang sebagai bahasa yang menargetkan kemudahan penggunaan sekaligus kontrol detail perangkat keras, serta mendukung penanganan detail hardware secara efisien melalui metaprogramming yang aman secara tipe
  • Latar belakang utamanya adalah membangun platform komputasi terpadu untuk mengatasi fragmentasi ekosistem akselerator AI seperti GPU, TPU, dan ASIC, serta mengurangi ketergantungan pada vendor tertentu
  • Karena masalah kompatibilitas dan kompleksitas pada stack perangkat lunak GPU yang ada (CUDA, ROCm, XLA, dll.), pengembangan bahasa generasi berikutnya yang berkinerja tinggi dan portabel menjadi hal yang esensial
  • Modular mendorong model bisnis yang berfokus pada pemecahan masalah nyata, seperti menyediakan Mojo secara gratis, dukungan hardware terpadu, dan layanan enterprise

Perkenalan dan karier Chris Lattner

  • Chris Lattner memiliki pengalaman memimpin berbagai proyek inti di bidang komputasi seperti LLVM, Clang, MLIR, Swift, dan Mojo
  • Ia telah bekerja di berbagai organisasi seperti Apple, Tesla, Google, SiFive, dan Modular, dengan pengalaman praktik yang luas dalam compiler dan desain bahasa pemrograman
  • Pada awalnya ia memulai dari bahasa sederhana seperti BASIC dan lingkungan PC, lalu tertarik pada memaksimalkan kinerja perangkat keras melalui game dan grafis
  • Saat kuliah, ia secara kebetulan dipengaruhi oleh seorang profesor spesialis compiler, yang membuatnya tertarik pada sistem dan arsitektur perangkat lunak skala besar

Bergerak antara compiler dan desain bahasa

  • Chris Lattner telah berkecimpung dalam rekayasa compiler dan desain bahasa, dan meraih pencapaian besar di titik temu kedua bidang tersebut
  • Sebagai contoh, LLVM adalah bahasa perantara yang dapat digunakan oleh berbagai bahasa, dan selain implementasi C++, juga melahirkan penerapan luas pada Rust, Julia, dan lainnya
  • Pengembangan Swift juga dimulai sebagai upaya untuk mengatasi keterbatasan dan kelelahan dari implementasi C++ yang ada, dengan penekanan pada kebutuhan akan fitur-fitur praktis seperti pattern matching
  • Ia lebih menyukai pendekatan merancang inovasi bahasa pemrograman berdasarkan pemecahan masalah nyata dan utilitas, bukan semata teori matematika

Teori bahasa pemrograman dan kepraktisan

  • Chris mengejar cara berpikir yang berpusat pada pemecahan masalah ketimbang ketelitian matematis, dan dalam makalah PL ia lebih tertarik pada contoh praktis dan kasus penggunaan daripada teorinya sendiri
  • Ia mengakui bahwa fitur bahasa dengan fondasi matematis yang kuat memiliki kelebihan dalam konsistensi dan komposabilitas, tetapi pendorong utama adopsi nyata adalah manfaat yang terlihat dalam penggunaan
  • Ia menyebut bahwa dalam bahasa atau teknologi baru, penting untuk meminimalkan "butiran pasir (grain of sand)" dari kompleksitas sebanyak mungkin demi penyederhanaan desain dan skalabilitas

Masalah struktural ekosistem hardware AI

  • Infrastruktur compiler tradisional seperti LLVM berpusat pada CPU, tetapi AI/machine learning menuntut berbagai perangkat keras khusus seperti GPU, TPU, ASIC, dan FPGA
  • Setiap vendor mengembangkan stack perangkat lunak mereka sendiri (CUDA, ROCm, XLA, dll.), yang menyebabkan kurangnya kompatibilitas dan perpecahan ekosistem
  • Perangkat lunak ML (misalnya PyTorch) memerlukan optimasi terpisah untuk setiap vendor hardware, sehingga pemeliharaan dan ekspansinya menjadi sangat sulit
  • Karena tiap hardware memiliki stack, bahasa, dan ekosistem alat yang berbeda, dari sudut pandang pengembang perangkat lunak hal ini menurunkan produktivitas dan portabilitas secara luas

Peran Modular dan Mojo

  • Tim Modular berfokus pada pembangunan platform perangkat lunak yang umum dan terpadu untuk menyelesaikan masalah-masalah ini
  • Mojo dirancang dengan tujuan bukan hanya mengkhususkan kinerja untuk arsitektur GPU modern seperti tensor core, tetapi juga memungkinkan penulisan kernel yang portabel di berbagai hardware
  • Melalui struktur multi-lapis seperti Mojo, MAX (serving LLM berperforma tinggi, dll.), dan Mammoth (manajemen cluster/Kubernetes), mereka menyediakan infrastruktur AI yang terintegrasi

Latar belakang kebutuhan Mojo dan keputusan desain bahasa

  • Dengan bahasa yang ada saat ini, dua kebutuhan yaitu portabilitas kernel ML berperforma tinggi dan optimasi spesifik vendor tidak dapat dipenuhi secara bersamaan
  • Mojo harus mampu merespons secara dinamis terhadap detail struktur hardware, misalnya berbagai tipe data (seperti 8-bit floating point) dan hardware yang berubah sangat cepat seperti tensor core
  • Dengan model metaprogramming yang aman secara tipe, kontrol hardware yang kompleks diubah menjadi cara yang lebih efisien dan lebih mudah dibagikan

Perubahan pada desain hardware dan kernel

  • CPU di pusat data modern telah berkembang ke banyak core, tetapi GPU berkembang pesat dengan desain yang dioptimalkan untuk pemrosesan paralel seperti struktur SM (Streaming Multiprocessor) dan warp (operasi 32 thread)
  • Dengan hadirnya unit komputasi khusus AI seperti tensor core ke dalam hardware, dibutuhkan paradigma pemrograman hardware yang sepenuhnya berbeda dari CUDA tradisional
  • Bahkan dalam vendor yang sama pun, perubahan kompatibilitas antar generasi arsitektur sering terjadi (misalnya perubahan Nvidia Volta/Hopper/Blackwell), dan stack perangkat lunak tidak mampu mengikutinya

Model bisnis dan strategi ekosistem terbuka

  • Modular tidak berfokus menjual bahasa itu sendiri, melainkan merilis Mojo secara gratis
  • Model pendapatan utamanya didasarkan pada penyediaan platform/layanan untuk manajemen hardware terpadu dan kebutuhan enterprise
  • Dengan demikian, mereka menantang pembangunan ekosistem bersama tanpa vendor lock-in, sambil sekaligus mengejar dukungan hardware yang beragam dan pengelolaan infrastruktur yang efisien

Kesimpulan

  • Proyek Mojo dari Chris Lattner dan Modular memiliki arti penting sebagai pembangunan bahasa pemrograman dan platform baru untuk mendukung kemajuan machine learning, inovasi hardware AI, dan mengatasi fragmentasi ekosistem
  • Melalui desain bahasa yang inovatif dan perluasan ekosistem terbuka, ini adalah strategi yang akan berkontribusi pada demokratisasi ekosistem AI dan peningkatan produktivitas

1 komentar

 
GN⁺ 2025-09-07
Komentar Hacker News
  • Saya ingin menyampaikan terima kasih kepada banyak orang yang telah menunjukkan minat pada Mojo dan podcast ini. Jika ingin tahu lebih banyak tentang Mojo, Anda bisa melihat pertanyaan yang sering diajukan di FAQ (termasuk jawaban untuk “mengapa tidak membuat Julia menjadi lebih baik saja”). Dokumentasinya juga bisa dilihat di sini, dan kode sumber terbuka-nya juga sudah dipublikasikan dalam skala ratusan ribu baris. Komunitas Mojo juga sangat luar biasa, jadi akan menyenangkan jika Anda ikut bergabung di forum Discourse atau chat Discord — ini adalah komentar dari Chris Lattner

    • Saya penggemar. Saya sudah menonton beberapa presentasi tentang Mojo, dan meskipun disebutkan bahwa Mojo memanfaatkan teknologi compiler mutakhir, saya belum pernah mendengar contoh yang konkret. Walau bukan pengembang compiler, saya ingin setidaknya memahami sekitar 20% agar bisa merasakan seperti apa kecanggihan teknologi tersebut, jadi saya harap ada tulisan blog yang benar-benar mendalam dan teknis

    • Di FAQ tertulis pertanyaan "Apakah Mojo Playground masih tersedia?" lalu diarahkan ke playground tersebut, tetapi di sana justru tertulis bahwa 'Playground akan dihapus pada rilis 25.6 berikutnya'. Rasanya jawaban FAQ untuk pertanyaan 'apakah ini tersedia' yang malah mengarahkan ke fitur yang segera dihapus benar-benar meleset dari inti pertanyaannya. Secara praktik, jawabannya tampaknya adalah 'tidak akan bisa dipakai lama lagi'

    • Chris, senang bertemu Anda di sini. Dulu saya bahkan sempat berinvestasi lewat Light Table, jadi saya penasaran apakah ada kabar terbaru. (Tidak benar-benar bertanya serius, dan Mojo memang terlihat keren.) Saya penasaran seperti apa keberlanjutan jangka panjang proyek seperti ini, dan apakah ada dasar yang dapat dipercaya untuk itu

  • Python mendominasi bidang ML karena aplikasi ML modern bukan sekadar skrip komputasi sederhana, melainkan membutuhkan cakupan fitur yang luas dan ekosistem yang kokoh. Berbagai pra-pemrosesan data (ETL), penanganan data dalam beragam format, pemrosesan terdistribusi di klaster komputasi berkinerja tinggi, visualisasi serta integrasi GUI/DB — hanya Python yang mencakup semuanya. Komputasi numerik sangat cepat karena NumPy, PyTorch, JAX, dan lain-lain secara internal memakai C/C++/FORTRAN, dan juga mudah untuk mengimplementasikan hanya bagian kode yang sensitif terhadap performa secara terpisah dalam C/C++. Sistem FFI C/C++ milik Python juga cukup praktis dibanding bahasa lain. Ini jauh lebih menguntungkan daripada mengimplementasikan ulang seluruh ekosistem di bahasa lain seperti Julia

    • Ekosistem Python memang tak tertandingi, tetapi kombinasi Elixir/Nx juga sudah melakukan banyak hal yang dijanjikan Mojo. Melalui EXLA, kompilasi GPU/TPU juga dimungkinkan; pekerjaan data frame bisa dilakukan dengan Explorer/Polars; dan library Python bisa di-embed lewat Pythonx. Bedanya, Elixir sejak awal memang ditujukan untuk membangun sistem terdistribusi, sehingga BEAM/OTP mampu menangani permintaan serentak dalam jumlah besar serta koordinasi antarnode GPU. Jika benar-benar membangun layanan ML, mendapatkan toleransi kesalahan ekstrem dan skalabilitas dari satu stack kokoh yang mencakup Phoenix, LiveView, hingga Nx mungkin lebih penting daripada sedikit keunggulan performa hardware

    • Saya agak punya pandangan berbeda untuk sisi inferensi. Cukup mudah membuatnya dengan menyentuh langsung kernel CUDA, dan CUTLASS 3 terbaru maupun C++ modern sudah jauh lebih nyaman digunakan. Di atasnya ada lapisan Torch yang tipis, tetapi bagian ini justru sulit dibangun dan hanya menambah kompleksitas karena berbagai masalah seperti reference counting. Implementasi inti yang sesungguhnya ada di kernel di bawahnya, dan saya berencana segera menyingkirkan bagian ‘selubung Torch’ seperti ini lalu menghubungkannya dengan jelas ke program C++ yang bersih

    • Masalah ini sebenarnya soal kernel GPU, dan kernel semacam itu sejak awal memang tidak ditulis dengan Python. Python adalah bahasa ‘perekat’ untuk ML. Saya setuju dengan klaim bahwa “hanya Python yang menyediakan semua fungsi”, tetapi tetap sedikit disayangkan bahwa ekosistem tumbuh berpusat pada Python, bukan pada bahasa yang lebih baik

    • Python menjadi bahasa utama ML itu adalah ‘lingkaran yang menguatkan diri sendiri’. Ekosistemnya membesar karena sudah lebih dulu dipilih, tetapi alasan mengapa dulu Python yang dipilih pada awalnya tetap perlu dijelaskan secara terpisah. Sekarang ukurannya memang sudah tampak tak terkejar, tetapi itu belum cukup menjadi argumen mengapa sejak awal harus Python

    • Ironisnya, Python adalah bahasa terburuk untuk semua pekerjaan yang disebutkan tadi. Packaging maupun binary wheel sama-sama menyakitkan, dan selalu ada saja yang rusak. Untuk skrip mandiri Python masih oke, tetapi jika Python sejak awal dirancang dengan tujuan menjadi bahasa utama ML, tidak ada orang yang akan menginginkan bentuk seperti ini

  • Saya kaget setelah mendengarkan episodenya. Bahkan sampai September 2025, dukungan class masih disebut sebagai target jangka menengah, itu mengejutkan. Dulu Mojo sering dipromosikan sebagai ‘superset Python’, tetapi dengan laju perkembangan saat ini, itu tampaknya hanya terlihat sebagai tujuan ideal

    • Sebenarnya tidak pernah ada target menjadi ‘superset Python’. Itu hanya slogan untuk menarik perhatian orang, ditekankan hanya di awal lalu diam-diam ditarik

    • Mungkin bukan karena masalah kecepatan, tetapi karena mereka memang tidak menyukai OOP itu sendiri

    • Itu memang selalu merupakan target jangka panjang

  • Mungkin ini pertanyaan yang agak umum, tetapi saya penasaran mengapa bukan Lisp. Jika diasumsikan bahwa kode ML masa depan pada akhirnya akan ditulis oleh mesin (atau sistem konversi otomatis berbasis bahasa alami), maka S-Expression Lisp pada dasarnya sama dengan AST, sehingga itu adalah bahasa yang paling alami untuk mesin. Lingkungan REPL-nya juga biasanya lengkap, jadi rasanya sangat cocok sebagai pengganti Python

    • Yann LeCun dan lainnya pernah membuat Lisp untuk ML bernama Lush. Pada era 2000-an itu yang terbaik, dan sebelum Python (Theano) atau Lua (Torch) muncul, praktis tidak ada alternatif lain. Sampai sekarang pun saya berharap Lisp bisa kembali mendapat perhatian. Library Python memang luar biasa, tetapi bahasa itu sendiri masih punya banyak hal yang perlu diperbaiki

    • LLM (model bahasa besar) masih belum pandai menghitung jumlah tanda kurung ;)

    • Karena Lisp pernah diabaikan pada masa ledakan AI sebelumnya, banyak pengembang sampai sekarang tetap hanya memakai Emacs + SBCL. Padahal sebenarnya ada implementasi Lisp canggih lain seperti LispWorks, Allegro, dan Clozure, tetapi banyak orang tidak pernah mencobanya

  • Saya tidak suka lisensi Mojo sejak awal

    • Saya juga sudah memeriksanya, dan lisensi Mojo menyatakan bahwa penggunaan komersial dibedakan antara CPU atau penggunaan Nvidia dan ‘accelerator’ lainnya (TPU, AMD, dan sebagainya), sehingga lisensi terpisah diperlukan untuk penggunaan komersial lihat blog

    • Dari sudut pandang saya, jika ini adalah bahasa (Mojo) yang dikendalikan secara mutlak oleh satu perusahaan tertentu, maka sama sekali tidak ada alasan untuk mengadopsinya dalam bisnis. Saat lisensi Java berubah, sudah ada banyak perusahaan yang mengalami masalah. Menjalankan bisnis di atas Mojo alih-alih Python terasa terlalu berisiko

  • Jika melihat FAQ Mojo, di satu sisi mereka mengatakan secara ketat menargetkan superset Python, tetapi di roadmap tertulis “memberikan kode Python dan keakraban, namun tidak bisa menjadi superset sepenuhnya”, sehingga malah makin membingungkan. Jika kompatibilitas Python memang bukan tujuannya, saya tidak mengerti mengapa mereka terus menyebut Python. Saya juga penasaran apakah cerita bahwa mereka memakai emoji sebagai ekstensi file itu benar

    • Setahu saya, Mojo hanya mengejar sintaks bergaya Python dan interoperabilitas dengan Python. Klaim bahwa ia lebih mirip Python dari itu sebagian besar adalah untuk pemasaran

    • Soal ekstensi emoji, ya, itu benar. U+2615 (emoji kopi)

  • Saya ingin tahu apa yang membuat Mojo lebih unggul daripada Julia, karena meskipun Julia punya keterbatasan pada antarmuka dan ekosistem, integrasinya dengan Python juga sudah cukup baik, jadi saya tidak merasa Mojo secara khusus lebih baik

    • Khususnya, Julia sudah punya ekosistem GPU yang matang seperti JuliaGPU dan Reactant lihat Reactant.jl

    • Kompatibilitas dengan Python mungkin sedikit lebih baik di Mojo, tetapi lewat PythonCall.jl di Julia pun pemanggilan library Python sudah cukup stabil. Framework ML (Lux.jl, Flux.jl) juga berjalan baik di dalam Julia. Sejauh yang saya lihat, Mojo masih belum punya framework ML native pada tingkat yang setara

    • Mojo tampaknya menargetkan nuansa bahasa yang jauh lebih low-level, kontrol yang lebih besar, dan ketangguhan. Julia tidak cukup dapat diprediksi dari sisi semantik maupun performa sehingga kurang cocok sebagai fondasi software inti, sedangkan Mojo unggul dalam hal itu

    • Saya pernah mencoba membuat modul Python dengan Julia, tetapi merasa dukungannya masih kurang. Di Mojo, ini justru fitur inti

    • Julia juga masih kurang dalam hal mengompilasi kode Julia menjadi binary native sepenuhnya (seperti Rust atau C++)

  • Saya merasa fakta bahwa Mojo tidak mendapat perhatian luar biasa besar dan orang masih tetap memakai PyTorch bisa menjadi petunjuk bahwa isu lisensi dalam praktiknya lebih besar dari yang diperkirakan

    • Mojo tampaknya terlalu optimistis dalam menetapkan wilayahnya sendiri. Penggunaan Julia di dunia komersial juga perlahan meningkat dan dukungan GPU-nya juga bagus. Meski compiler JIT Python kurang memadai, Nvidia, Intel, dan lainnya sudah mengoptimalkan pemrograman GPGPU dengan Python DSL sampai pada tingkat yang cukup tinggi, sehingga di dalam Python pun bisa digunakan mendekati level C++. Pada akhirnya, pembeda Mojo terasa lemah

    • Dari sudut pandang sistem, upaya Chris dan tim untuk membereskan masalah FFI multibahasa dengan Mojo terasa mengesankan. Namun sebelum benar-benar menjadi open source, saya bahkan tidak bisa mulai membicarakan investasi ataupun adopsi

    • Ini masih belum siap dipakai sebagai bahasa pemrograman umum. Modular juga sempat mencoba menerapkan API Mojo pada mesin MAX, tetapi perubahan bahasanya terlalu cepat sehingga investasi ditinggalkan. Penerapan serius baru diharapkan setelah tahap 1 di roadmap selesai

    • Saya juga tidak tahu apakah ini benar-benar sudah terbuka. Sampai baru-baru ini belum menjadi open source, sehingga saya enggan bergantung pada perangkat lunak komersial tertutup

    • Di bagian awal tulisan disebutkan bahwa ini bisa memakai ‘kernel mutakhir’. Pada akhirnya, tampaknya Mojo ingin bersaing dengan C++ dalam pengembangan kernel. Di PyTorch atau Julia, biasanya orang tidak menulis kernel secara langsung dan lebih banyak bekerja di level tinggi

  • Ada beberapa episode podcast Lex Fridman yang menampilkan Chris Lattner:

  • Upaya Mojo sendiri memang berani dan menarik, tetapi jika ini adalah bahasa tertutup seperti Matlab, maka bagi saya dan juga banyak orang lain itu adalah cacat yang sangat serius

    • Seperti yang dijelaskan Chris secara rinci di berbagai podcast, Mojo pada akhirnya pasti akan dijadikan open source. Namun berkat pelajaran yang didapat dari pengalaman proyek open source Swift, mereka menilai bahwa pada tahap awal cara pengembangan terbuka justru bisa berdampak buruk bagi fase pertumbuhan bahasa. Karena itu, saat ini pembukaannya dilakukan secara bertahap; saat ini standard library sudah terbuka dan compiler juga direncanakan akan dibuka dalam waktu dekat