زبان Zig: زبانی که آروم داره جای خودش رو پیدا میکنه
این روزها هرجا نگاه میکنم، یه پروژه performance-critical جدید میبینم که با Zig نوشته شده. Bun - همون JavaScript runtimeی که هفته پیش Anthropic خریدش با Zig نوشته شده. Lightpanda - یه headless browser که ادعا میکنه ۱۰ برابر Chrome سریعتره با Zig نوشته شده. TigerBeetle - یه دیتابیس مالی که قراره جایگزین سیستمهای بانکی بشه - با Zig نوشته شده.
مقاله Lightpanda یه تیتر خیلی صادقانه داره: «چون به اندازه کافی باهوش نیستیم که با C++ یا Rust بنویسیم.»
زبان Zig رو Andrew Kelley از سال ۲۰۱۵ شروع کرد چون داشت روی یه پروژه real-time audio کار میکرد و از C کلافه شده بود. فلسفه طراحیش سادهست: هیچ چیز مخفی نباشه. هیچ hidden allocation نداری، هیچ operator overloadingی نداری، هیچ exceptionی نداری. وقتی کد رو میخونی، دقیقاً میفهمی چی اجرا میشه. یه فیچر خیلی قوی داره به اسم comptime که باهاش میتونی موقع کامپایل کد اجرا کنی - مثل macroهای C ولی با همون سینتکس Zig. همچنین میتونی مستقیم headerهای C رو import کنی و با کدبیسهای قدیمی کار کنی.
حالا سوال اصلی: چرا Zig و نه Rust؟ جواب کوتاه: Zig سادهتره ولی unsafe تره. Rust با borrow checker تضمین میکنه memory safe هستی، ولی learning curve سنگینی داره. Zig این تضمین رو نمیده - بجاش یه سری runtime check داره که توی debug mode کمکت میکنه. Jarred Sumner (سازنده Bun) گفته اول میخواست با Rust بنویسه ولی نتونست productive باشه. تیم TigerBeetle هم گفته برنامهنویسهای خوب از هر زبانی میتونن Zig رو توی یه آخر هفته یاد بگیرن.
زبان Zig هنوز به نسخه ۱.۰ نرسیده و اکوسیستم بالغی نداره. برای پروداکشن معمولی توصیه نمیشه. ولی برای systems programming - جایی که میخوای به سختافزار نزدیک باشی، performance حیاتیه، و با زبان C باید interpolation داشته باشی - داره به یه گزینه جدی تبدیل میشه. وقتی Anthropic میاد Bun رو میخره و میگه میخوایم زیرساخت Claude Code رو باهاش بسازیم، یعنی این زبان دیگه فقط یه اسباببازی نیست.
Why We Built Lightpanda in Zig
Because We're Not Smart Enough for C++ or Rust
https://lightpanda.io/blog/posts/why-we-built-lightpanda-in-zig
Anthropic acquires Bun as Claude Code reaches $1B milestone
https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone
@gocasts
Post #757
10.1K

- 👍 46
- ❤ 16