آشنایی با زبان برنامه‌نویسی Rust و یک دورهٔ آموزشی مرتبط با آن

آشنایی با زبان برنامه‌نویسی Rust و یک دورهٔ آموزشی مرتبط با آن

Rust ابتدا به عنوان یک پروژهٔ شخصی توسط Graydon Hoare که یکی از کارمندان بنیاد موزیلا بود، طراحی و توسعه داده می‌شد؛ در سال ۲۰۰۹ هم این بنیاد اسپانسری این پروژه را بر عهده گرفت و خبر آن را در سال ۲۰۱۰ انتشار داد اما جالب است بدانید اولین نسخهٔ پایدار این زبان برنامه‌نویسی -یعنی نسخه‌ٔ Rust 1.0- در روز پانزدهم ماه می سال ۲۰۱۵، به صورت رسمی ارائه شد.

اهداف اولیهٔ طراحی زبان Rust
هدف از توسعهٔ زبان راست این بود که یک زبان خوب برای توسعهٔ سیستم‌های موازی و با امنیت بالا، ساخته شود. همچنین طراحی #راست به گونه‌ای بود که سرعت و امنیت را در کنار هم به ارمغان بیاورد. در بخشی از مستندات رسمی این زبان آمده:

Rust یک زبان برنامه‌نویسی سیستمی است که بر سه هدف متمرکز شده که عبارتند از ایمنی، سرعت و هم‌زمانی.

Rust یک زبان بسیار جوان و در عین حال مدرن است. این زبان، جزو زبان‌های برنامه‌نویسی کامپایلری است و در بک‌اند هم از LLVM استفاده می‌کند. همچنین Rust یک زبان برنامه‌نویسی به اصطلاح Multi-paradigm است و انواع شیوه‌های دستوری، هم‌زمانی، شیی‌ٔگرا و کاملاً فانکشنال را پشتیبانی می‌کند. علاوه بر این، زبان برنامه‌نویسی راست کدنویسی جِنِریک و متا را در هر دو استایل استاتیک و داینامیک، پشتیبانی می‌کند.

یکی از ویژگی‌های منحصر به فرد و متقاعدکنندهٔ این زبان، مفهومی است تحت عنوان Ownership که ما را قادر به داشتن Memory Safety کرده و باعث شده تا خیالمان از بابت امنیت در رَم تا حدود زیادی راحت باشد. Rust مموری پوینتر‌ها را با اطمینان خاطر برای دولوپر ایجاد کرده و حدود دسترسی مموری پوینترها را در زمان کامپایل، با استفاده از رفرنس‌ها چک می‌کند (و البته با چک کردن لایف‌تایم‌ها در زمان کامپایل، کار مدیریت رَم را انجام می‌دهد).

Rust از چه زبان‌‌ها و سیستم‌هایی الهام گرفته است؟
در طراحی این زبان، از منابع بسیاری الهام گرفته شده است که در لیست زیر برخی از این پیش‌زمینه‌‌ها را باهم می‌بینیم:

- Abstract Machine Model: C
- Data types: C, SML, OCaml, Lisp, Limbo
- Optional Bindings: Swift
- Hygienic Macros: Scheme
- Functional Programming: Haskell, OCaml, F#
- Attributes: ECMA-335
- Memory Model and Memory Management: C++, ML Kit, Cyclone
- Type Classes: Haskell
- Crate: Assembly in the ECMA-335 CLI model
- Channels and Concurrency: Newsqueak, Alef, Limbo
- Message passing and Thread failure: Erlang

معرفی دورهٔ آموزش آنلاین زبان Rust
برای شروع یادگیری این زبان، می‌توان به سایتی تحت عنوان Learning Rust مراجعه کرد. در این سری آموزش‌ها، شما با مفاهیم پایه‌ای مانند راه‌اندازی محیط کار، دیتا تایپ‌ها، توابع، عملگرها، دستورات شرطی و غیره آشنا خواهید شد، سپس مفاهیمی مانند استراکچرها، وکتورها، جِنِریک‌ها و مفاهیمی از این دست را یاد می‌گیرید. در نهایت نیز می‌توانید با مفاهیم پیشرفته‌تری همچون مبحث Ownership، مدیریت حافظه و لایف تایم‌ها نیز آشنا شوید.