Mojo کاملاً متنباز شد: کامپایلر و toolchain زیر لایسنس Apache 2.0
حدود ۵ دقیقه مطالعه
هجدهم آگوست، تو کنفرانس ModCon 2026 تو سانفرانسیسکو، شرکت Modular اعلام کرد که زبون برنامهنویسی Mojo حالا کاملاً متنبازه؛ نه فقط کتابخونهی استاندارد (که قبلاً باز شده بود)، بلکه خود کامپایلر و کل toolchain هم زیر لایسنس Apache 2.0 (با LLVM exceptions) منتشر شدن. این اتفاق فقط یه هفته بعد از رسیدن Mojo به نسخهی ۱.۰ (دوازدهم آگوست) و حدود سه هفته بعد از تکمیل خرید Modular توسط Qualcomm (با رقمی حدود ۳.۹ میلیارد دلار) رخ داد.
چرا این موضوع مهمه: بخشی که تا الان بسته بود
Mojo رو Chris Lattner (خالق LLVM، Clang، MLIR، و Swift) ساخته، و هدفش یه زبون عمومییه که بتونه همزمان GPU، شتابدهندههای هوش مصنوعی، و سختافزارهای متنوع دیگه رو با یه سینتکس شبیه پایتون هدف بگیره. طبق گزارشها، Mojo از سال ۲۰۲۳ بهصورت عمومی و با ورودی کامیونیتی توسعه پیدا کرده، ولی خود کامپایلر (بخشی که کد Mojo رو به کد ماشین مخصوص هر سختافزار تبدیل میکنه) تا همین چند روز پیش بسته بود.
مسیر باز شدن Mojo مرحلهبهمرحله بوده: بخشهای اصلی کتابخونهی استاندارد سال ۲۰۲۴ زیر Apache 2.0 منتشر شدن، ژانویهی امسال کل کتابخونهی استاندارد باز شد، و حالا با این اعلامیه، کامپایلر، ابزارها، و هرچی که برای ساختن کامل زبون از صفر لازمه هم به این جمع اضافه شده. طبق گفتهی خود Modular، این یعنی از الان میتونی هم کامپایلر رو تغییر بدی، هم کد کتابخونه رو، و کل test suite رو مستقیم اجرا کنی.
چرا این لایسنس خاص انتخاب شده
Modular صراحتاً Apache 2.0 با LLVM exceptions رو «استاندارد طلایی» برای زبونها و کامپایلرها توصیف کرده؛ همون لایسنسی که LLVM، Clang، و Swift هم زیرش منتشر شدن. نکتهی مهم LLVM exception اینه که برنامههایی که با Mojo نوشته و کامپایل میشن، مجبور نیستن زیر Apache یا هر لایسنس متنباز دیگهای منتشر بشن؛ یعنی میتونی از Mojo برای ساختن نرمافزار کاملاً proprietary هم استفاده کنی.
یه نکتهی فنی مهم اینه که فعلاً مشارکت مستقیم (pull request) رو خود کامپایلر پذیرفته نمیشه؛ Modular گفته قصد داره تا پایان سال ۲۰۲۶ این مسیر رو هم باز کنه. یعنی الان میتونی کد رو بخونی، fork کنی، و از سورس بسازیش، ولی نمیتونی مستقیم تغییری رو خود کامپایلر merge کنی.
# ساخت کامپایلر از سورس
./bazelw run --config=build-mojo KGEN:mojo -- run hello.mojo
# یا اگه فقط میخوای استفاده کنی، بدون build کردن کامپایلر:
# از فلگ prebuilt-mojo استفاده کن تا آخرین باینری nightly دانلود بشه
زمانبندی: چرا درست بعد از خرید Qualcomm
نکتهی جالبی که تقریباً همهی گزارشها روش تأکید کردن، زمانبندیه. Qualcomm خرید Modular رو ۲۹ جولای نهایی کرد؛ فقط سه هفته بعد، اولین حرکت بزرگ مالک جدید این بوده که کامپایلر رو کاملاً ببخشه. این تصمیم برای خیلیها غیرمنتظره بود، چون تاریخچهی Qualcomm تو متنباز چندان درخشان نیست، و بعضی تو کامیونیتی نگران بودن که خرید یه شرکت سازندهی چیپ، تعهد Modular به یه پلتفرم توسعهی خنثی از نظر vendor رو به خطر بندازه.
استدلال منطقی پشت این تصمیم اینه: هر ساعتی که یه توسعهدهنده صرف قفلشدن تو CUDA (اکوسیستم اختصاصی NVIDIA) میکنه، یه ساعتیه که تراشههای Qualcomm نمیتونن گزینهی رقیب باشن. باز کردن toolchain برای Qualcomm عملاً هزینهای نداشته (چون هیچوقت قرار نبوده از فروش لایسنس کامپایلر پول دربیاره)، ولی میتونه به پذیرش گستردهتر Mojo رو انواع سختافزار کمک کنه؛ از جمله سختافزار خود Qualcomm.
گسترهی سختافزاری: فراتر از NVIDIA
طبق اعلامهای ModCon، پلتفرم Modular (که Mojo موتور اصلیشه) الان از AWS Trainium و Google TPU هم پشتیبانی میکنه، علاوه بر GPU های NVIDIA، AMD، و Apple Silicon. حتی یه دمو رو یه شتابدهندهی چینی (Houmo، با ۲۴ گیگابایت حافظهی M.2) هم نشون داده شده. تراشههای خود Qualcomm (مثل Cloud AI 100 Ultra و Dragonfly) هم حالا هدف اولدرجهی این stack هستن. یه مقام از GV (سرمایهگذار وابسته به گوگل) این چشمانداز رو اینطور خلاصه کرده: «هر مدل هوش مصنوعی رو هر تراشهای اجرا کن.»
نکتهی مهم: MAX هنوز کاملاً باز نشده
یه تمایز مهم که نباید فراموشش کرد: Mojo (خود زبون و کامپایلر) کاملاً متنبازه، ولی MAX (لایهی بالاتر که مدلهای هوش مصنوعی رو serve و بهینه میکنه) فقط «source-available» شده، نه open source؛ یعنی میتونی کدش رو ببینی، ولی زیر یه لایسنس community با شرایط خاص (محدودیتهایی دربارهی telemetry، برندینگ، و ساختن جایگزینهای رقیب) قرار داره. طبق تحلیل Forbes، محدودیتهای قدیمی مبتنی بر تعداد دستگاه از MAX برداشته شده که پیشرفت واقعییه، ولی source-available با governance واقعی کامیونیتی فرق داره. ریسک بزرگتر هم اینه که Modular Cloud (لایهای که تصمیم میگیره workload ت رو کدوم تراشه اجرا بشه) کاملاً proprietary باقی مونده؛ یعنی Apache 2.0 فقط خود زبون رو محدود میکنه، نه ابر (cloud) بالادستیش.
پشتیبانی پلتفرم
Mojo فعلاً از macOS و لینوکس پشتیبانی میکنه. طبق اعلام Modular، دارن مستقیم با تیم ویندوز مایکروسافت همکاری میکنن تا Mojo رو بهصورت native (نه فقط از طریق WSL) به ویندوز بیارن؛ این یکی از پرتقاضاترین درخواستهای کامیونیتی Mojo بوده.
این برای توسعهدهندهها چه معنایی داره
اگه دنبال یه زبون سیستمی با سینتکس نزدیک به پایتون هستی که بتونه همزمان CPU، GPU، و شتابدهندههای AI رو با performance بالا هدف بگیره، Mojo حالا از هر نظر (نه فقط کتابخونه، بلکه کل زنجیرهی ساخت) قابل بازرسی و تغییره؛ چیزی که برای شرکتهایی که نگران قفلشدن تو یه vendor خاص (مثلاً NVIDIA/CUDA) هستن، جذابیت واقعی داره. با این حال، CUDA همچنان عمیقترین و جاافتادهترین toolchain مخصوص سختافزار NVIDIA است؛ یه دهه کتابخونه، پشتیبانی driver، و ابزار که Mojo قرار نیست یکشبه جایگزینش کنه. اگه پروژهت به ویندوز وابستهست، فعلاً باید صبر کنی تا پشتیبانی native تکمیل بشه.
