Rust
یک زبان بسیار جوان و در عین حال مدرن است. این زبان، جزو زبانهای برنامهنویسی کامپایلری است و در بکاند هم از LLVM
استفاده میکند. همچنین Rust
یک زبان برنامهنویسی به اصطلاح Multi-paradigm
است و انواع شیوههای دستوری، همزمانی، شییٔگرا و کاملاً فانکشنال را پشتیبانی میکند. علاوه بر این، زبان برنامهنویسی راست کدنویسی جِنِریک و متا را در هر دو استایل استاتیک و داینامیک، پشتیبانی میکند.
اولین نسخه از کامپایلر Rust
، که آلفا نام گذاری شد در ژانویه ۲۰۱۲ منتشر شد. نسخه فعلی (نسخه ۰٫۸)، در سپتامبر ۲۰۱۳ منتشر شدهاست.
Rust
ابتدا به عنوان یک پروژهٔ شخصی توسط Graydon Hoare
که یکی از کارمندان بنیاد موزیلا بود، طراحی و توسعه داده میشد؛ در سال ۲۰۰۹ هم این بنیاد اسپانسری این پروژه را بر عهده گرفت و خبر آن را در سال ۲۰۱۰ انتشار داد اما جالب است بدانید اولین نسخهٔ پایدار این زبان برنامهنویسی -یعنی نسخهٔ Rust 1.0-
در روز پانزدهم ماه می سال ۲۰۱۵، به صورت رسمی ارائه شد. Rust
یک زبان برنامهنویسی ترجمه شده، عام منظوره و چند الگویی است که توسط تحقیقات موزیلا توسعه یافتهاست. این زبان طراحی شدهاست تا یک زبان مطمئن، همسو و عملی باشد که مدلهای تابعی خالص، امری-رویهای و شی گرا را پشتیبانی میکند. زبان از یک پروژه شخصی توسط توسعه دهنده Graydon Hoare
به وجود آمد، که او کار بر روی آن را در سال ۲۰۰۶ آغاز کرد؛ کارفرمای او موزیلا، در سال ۲۰۰۹ درگیر این پروژه شد و رسماً آن را برای اولین بار در سال ۲۰۱۰ پرده برداری کرد. در همان سال، کار از کامپایلرهای اولیه (نوشته شده در OCaml
) خود را به کامپایلر خود میزبان نوشته شده در Rust تغییر داد. چیزی که به عنوان rustc
شناخته شد، با موفقیت خود را در سال ۲۰۱۱ کامپایل کرد. کامپایلر خود میزبان از LLVM
به عنوان backend
استفاده میکند.
یکی از ویژگیهای منحصر به فرد و متقاعدکنندهٔ این زبان، مفهومی است تحت عنوان Ownership
که ما را قادر به داشتن Memory
Safety
کرده و باعث شده تا خیالمان از بابت امنیت در رَم تا حدود زیادی راحت باشد. Rust
مموری پوینترها را با اطمینان خاطر برای دولوپر ایجاد کرده و حدود دسترسی مموری پوینترها را در زمان کامپایل، با استفاده از رفرنسها چک میکند (و البته با چک کردن لایفتایمها در زمان کامپایل، کار مدیریت رَم را انجام میدهد).
هدف از توسعهٔ زبان راست این بود که یک زبان خوب برای توسعهٔ سیستمهای موازی و با امنیت بالا، ساخته شود. همچنین طراحی راست به گونهای بود که سرعت و امنیت را در کنار هم به ارمغان بیاورد. در بخشی از مستندات رسمی این زبان آمده: Rust
یک زبان برنامهنویسی سیستمی است که بر سه هدف متمرکز شده که عبارتند از ایمنی، سرعت و همزمانی.
Rust
بهطور کامل در بازخورد باز و همکاری و کمک از جامعه توسعه یافتهاست. طراحی این زبان از طریق تجربه حاصل از نوشتن موتور چیدمان Servo
اصلاح شده و Rust
خودش را کامپایل کردهاست. اگر چه توسعه آن با حمایت مالی موزیلا و سامسونگ بودهاست، اما یک پروژهٔ اجتماعی است. بخش بزرگی از تصدیقات نسخهٔ فعلی از اعضای جامعه میباشد.
هدف Rust
این است که یک زبان خوب برای ایجاد مجموعهٔ بزرگی از مشتریها و سرور برنامههایی که بر روی اینترنت اجرا میشوند باشد. این امر زیان را به یکی از ویژگیهای مجموعه با تأکید بر ایمنی، کنترل از طرح حافظه و همزمانی هدایت میکند. اگر عملکرد زبان تنها عامل مورد توجه باشد، عملکرد قابل اطمینان بودن کد همانطور که انتظار میرود آن را کندتر از C++
میکند اما پیشگیریهای از پیش تعریف شده در Rust
با احتساب اقدامات محتاطانهای که زبان C++
بهطور دستی انجام میدهد، از نظر سرعت برابری میکند (و یا حتی سریعتر است)
نحو زبان Rust
مشابه C
و C++
است؛ با بلاکهایی از کد که بین آکولادها محدود شدهاست و کلمات کلیدی کنترل جریان مانند while
,do
,else
,if
و for
. البته تمام کلمات کلیدی C
و C++
وجود ندارد اما به هر حال دیگران مانند تطابق واژه کلیدی برای انشعاب چند جهت برای برنامه نویسانی که از این زبانها میآیند کمتر آشنا خواهد بود. با وجود شباهت نحوی،Rust
از نظر معنایی با C
و C++
متفاوت است.
برای شروع یادگیری این زبان، میتوان به سایتی تحت عنوان Learning Rust مراجعه کرد. در این سری آموزشها، شما با مفاهیم پایهای مانند راهاندازی محیط کار، دیتا تایپها، توابع، عملگرها، دستورات شرطی و غیره آشنا خواهید شد، سپس مفاهیمی مانند استراکچرها، وکتورها، جِنِریکها و مفاهیمی از این دست را یاد میگیرید. در نهایت نیز میتوانید با مفاهیم پیشرفتهتری همچون مبحث Ownership
، مدیریت حافظه و لایف تایمها نیز آشنا شوید.