مقایسهی Rust و Go معمولاً به جدول سرعت ختم میشود، درحالیکه در عمل، تفاوت اصلی این دو در چیزی است که از تیم شما میخواهند.
Go را وقتی انتخاب کنید که…
- سرویس شبکهای یا API مینویسید و میخواهید سریع به تولید برسید.
- تیم بزرگ است و میخواهید کد همه شبیه هم باشد.
- همزمانی زیاد دارید و مدل goroutine جواب مسئلهتان را میدهد.
Rust را وقتی انتخاب کنید که…
- کنترل دقیق حافظه اهمیت دارد: سیستمهای تعبیهشده، موتور بازی، پردازش دادهی سنگین.
- خطای زمان اجرا برایتان پرهزینه است و ترجیح میدهید کامپایلر جلوی آن را بگیرد.
- میخواهید کتابخانهای بنویسید که از زبانهای دیگر هم فراخوانی شود.
هزینهی واقعی
Go در چند هفته یاد گرفته میشود؛ Rust در چند ماه. اما هزینهی نگهداری در بلندمدت میتواند برعکس باشد: کدی که کامپایلر Rust پذیرفته، دستهی بزرگی از باگهای حافظه و همزمانی را از قبل رد کرده است.
اگر هنوز مردد هستید، یک مؤلفهی کوچک و واقعی از پروژه را با هر دو بنویسید. دو روز کار، بهتر از دو هفته بحث تصمیم میگیرد.
جملهی آخر بهترین بخش مقاله بود. ما دو هفته سر همین موضوع جلسه گذاشتیم و آخرش هم با یک نمونهی کوچک تصمیم گرفتیم.
دقیقاً. یک پروتوتایپ واقعی معمولاً سریعتر از هر بحثی به نتیجه میرسد.