ویرگول
ورودثبت نام
محمد مهدی شریفه
محمد مهدی شریفهعاشق ایران رئالیست دانشجوی لیسانس مهندسی کامپیوتر
محمد مهدی شریفه
محمد مهدی شریفه
خواندن ۲ دقیقه·۴ ماه پیش

زبان Rust؛ معجزه‌ای با زخم‌های عمیق

این روزها زبان برنامه‌نویسی Rust حسابی محبوب شده و تقریباً همه برنامه‌نویسا، از فرانت‌اند و بک‌اند گرفته تا برنامه‌های سطح پایین سیستمی، باهاش کار می‌کنن. Rust یکی از معدود زبان‌هایی هست که بدون استفاده از جمع‌آوری زباله (Garbage Collector) حافظه رو خیلی امن مدیریت می‌کنه. احتمالاً کلی از خوبی‌هاش شنیدید، اما اینجا می‌خوام یه کم درباره مشکلاتش صحبت کنم؛ چیزایی که شاید کمتر بهشون توجه شده ولی برای خیلی‌ها دردسر درست کرده.

Rust Logo
Rust Logo

پیچیدگی سیستم بیلد و کامپایلر

اول بگم که سیستم بیلد «کارگو» و خود کامپایلر Rust یه جورایی پیچیدگی‌شون از خیلی از ابزارهای مشابه تو C و C++ بیشتره. یعنی این که وقت ساخت برنامه خیلی طولانی میشه، حتی بعضی وقت‌ها این تفاوت سرعت به چند برابر میرسه و جاهایی هم دیدم که سرعت ساخت کلی صد برابر کمتر شده! این موضوع می‌تونه حسابی اعصاب برنامه‌نویس رو خورد کنه و روند کار رو کند کنه. تازه این فقط مشکل سرعت نیست، همین پیچیدگی باعث میشه خطاهای عجیب غریب هم زیاد بشه.

درخت وابستگی‌های بزرگ

یه فرق دیگه Rust با C/C++ اینه که کتابخونه‌هاش معمولاً یه عالمه وابستگی دارن. یعنی ممکنه تو فقط ده تا کتابخونه نصب کنی، اما سیستم تو کلی صدها کتابخونه دیگه هم نصب کنه! این یعنی هم حجم فایل اجرایی‌ت میره بالا هم ساخت برنامه خیلی طولانی‌تر میشه. تازه اگه یکی از کتابخونه‌های اصلی تغییر کنه، ممکنه همه کتابخونه‌های وابسته‌ش هم به دردسر بیفتن و مجبور بشی کلی کد رو درست کنی که باعث بروز خطاهای بیشتر میشه.

سینتکس تابعی پیچیده

Rust یه زبانیه که خیلی از ویژگی‌های برنامه‌نویسی تابعی داره؛ یعنی اون سبک برنامه‌نویسی که خیلی مقاوم‌تره و توی چندتا کار هم‌زمان عالی کار می‌کنه. اما واقعیتش اینه که سینتکس این سبک برای خیلی‌ها سخت و پیچیده‌س. حتی اگه کدت صد خط باشه، ممکنه یه جورایی حس کنی هیچی نمی‌فهمی چی داره می‌گذره و دنبال کردنش سخته.

ناپایداری زبان

مشکل قبلی‌ها شاید با تجربه حل بشه، اما یه مشکل بزرگ دیگه هست که راه‌حل آسونی نداره: ناپایداری Rust. نه فقط این که ABI پایداری نداره، بلکه حتی سینتکس‌های پایه زبان هم تو هر نسخه آپدیت تغییر می‌کنن! یعنی وقتی یه برنامه نوشتی، باید همیشه حواست باشه که با هر نسخه جدید باید کلی تغییر تو کدت بدی که برنامه هنوز درست کار کنه.


جمع‌بندی

Rust با همه خوبی‌ها و امکاناتش، هنوز چالش‌های خودش رو داره که بعضی وقت‌ها می‌تونه توسعه سریع رو سخت کنه. پیچیدگی سیستم ساخت، وابستگی‌های زیاد، سختی فهم سینتکس تابعی و همین ناپایداری زبان، چیزایی هستن که قبل از انتخاب Rust باید حسابی بهشون فکر کنی. البته Rust یه زبان جوان و رو به رشده و احتمالاً تو آینده خیلی از این مشکلات کمتر میشن و جایگاهش تو دنیای برنامه‌نویسی محکم‌تر میشه.

rustدنیای برنامه‌نویسیزبان برنامه‌نویسیبرنامه نویسی
۲
۴
محمد مهدی شریفه
محمد مهدی شریفه
عاشق ایران رئالیست دانشجوی لیسانس مهندسی کامپیوتر
شاید از این پست‌ها خوشتان بیاید