اگر از رفتارهای پنهان کامپایلرها و انتزاعات «جادویی» خسته شدهاید، Mach راه بازگشت به کنترل مطلق در برنامهنویسی سیستمها است. تصور کنید در دنیایی هستید که ابزارها دیگر شما را «راهنمایی» نمیکنند، بلکه دقیقاً همان کاری را میکنند که نوشتهاید؛ بدون هیچ پیشفرض پنهانی.
در حالی که دنیای نرمافزار به سمت انتزاع (Abstraction) — شبیه کلید برق که شما فقط آن را میزنید اما سیمکشی پیچیدهی پشت دیوار را نمیبینید — حرکت میکند، بسیاری از توسعهدهندگان با منطقهای نامرئی میجنگند. Mach با الهام از زبانهای Go، Zig و Rust وارد میدان شده است، اما یک چرخش جسورانه دارد: حذف کامل نردههای ایمنی. همانطور که در تحلیلهای قبلی ما دربارهی بهینهسازی حافظه در زبانهای مدرن اشاره کردیم، حذف این لایهها میتواند پیچیدگی عیبیابی را کاهش دهد.
این زبان که در ۸ ژوئن ۲۰۲۶ عرضه شد، دارای نوعبندی ایستا (Statically Typed) است — شبیه حسابداری سختگیر که قبل از پذیرش دفتر، نوع هر ورودی را چک میکند تا اشتباهی رخ ندهد. طبق مستندات گیتهاب این پروژه، Mach بر سه ستون اصلی استوار است:
- سادگی: اولویت یادگیری سریع و نگهداری بلندمدت بر راحتیهای کوتاهمدت.
- صراحت: طراحی پرحجم (Verbose) برای جلوگیری از هرگونه توهم دربارهی نحوهی عملکرد سختافزار.
- کنترل برنامهنویس: ایمنی یک «تصمیم» توسط توسعهدهنده است، نه یک «محدودیت» تحمیلشده از سوی کامپایلر.
به نقل از مستندات فنی، این زبان از نشانگرهای صریح استفاده میکند (مثلاً main.symbol$ = "main") و وابستگیها را با دستور اختصاصی dep مدیریت میکند. کامپایلر (Compiler) — مثل مترجمی که نه فقط کلمات، بلکه ساختار جمله را برای سرعت بیشتر بازنویسی میکند — در اینجا کمترین دخل و تصرف را در کد دارد. این زبان تحت لایسنس MIT منتشر شده و به توسعهدهندگان اجازه میدهد کامپایلر را از طریق کد منبع بازسازی کنند.
برای یک مهندس سطح پایین، این یعنی نوشتن کدهای بیشتر، اما با ابهام صفر. با حذف شبکههای ایمنی خودکاری که در Rust میبینیم، بار ذهنی برنامهنویس برای حدس زدن کارهای پشتپردهی کامپایلر بهطور کامل حذف میشود.
گام بعدی شما
- مخزن گیتهاب پروژه را کلون کنید تا با دستور
mach initاولین پروژهی خود را بسازید. - مستندات بخش
depرا برای مدیریت وابستگیها مطالعه کنید. - بنچمارکهای اولیهی جامعهی توسعهدهندگان را دنبال کنید تا سرعت اجرای آن را با Zig بسنجید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تأثیر معماریهای جدید روی زبانهای سیستم بازگردید.
گفتگو