در اینجا هستیم تا با زبان برنامهنویسی Rust (تلفظ کنید راست 😀 ) آشنا شویم.
به نقل از ویکیپدیا:
راست (به انگلیسی: Rust) یک زبان برنامهنویسی ترجمه شده، عام منظوره و چند الگویی است که توسط تحقیقات موزیلا توسعه یافتهاست. این زبان، طراحی شدهاست تا یک زبان مطمئن، همسو و عملی باشد؛ که مدلهای تابعی خالص، امری-رویهای و شیءگرا را پشتیبانی میکند.
احتمالا از نقل قول بالا چیز زیادی متوجه نشدید!!! اشکالی ندارد. تنها چیزی که مهم است بدانید این است که راست، اولا یک زبان برنامهنویسی بوده و ثانیا توسط موزیلا (Mozilla: خالق فایرفاکس) حلق شده است. جالب است بدانید که حتی نسخهی Quantum به بعد مرورگر فایرفاکس نیز با این زبان توسعه یافته است.
اما به راستی، راست چیست؟!
اما به راستی، راست چیست؟!
(عجب تیتیری شد 😐 )
به نظر میرسد دو غول C و C++، جایگزینی برای خود نداشته باشند! اما راست، راست راست آمده است تا این گفته را نقص کنید! ? گرچه دو زبان برنامهنویسی یاد شده کهنه نمیشوند و هر از گاهی برایشان نسخههای جدید و بهبود یافتهای عرضه میشود، اما در این میان، راست یکی از زبانهایی است که از نظر ساختاری نیز بسیار شبیه به C و C++ بوده و شاید بتوان گفت یک نسخهی بهبود یافته از آن دو در قالب یک زبان برنامهنویسی جدیدی است.
جالب است بدانید که این زبان، در ابتدا و در سال 2006، بصورت یک پروژهی شخصی و توسط برنامهنویسی به نام Graydon Hoare خلق شد؛ و سپس کارفرمای این شخص (یعنی موزیلای بزرگوار) نیز درگیر این پروژهی شخصی او شد که در نهایت آن را بصورت رسمی در سال 2010 رونمایی کرد. کامپایلرهای اولیهی این زبان در OCaml نوشته شده بودند؛ اما در همان سال، ککامپایلر خود میزبان (یعنی توسط همین زبان نوشته شده بود) جای قبلی را گرفت. همچنین این کامپایلر خود میزبان، از LLVM به عنوان backend استفاده میکند. البته اولین نسخه کامپایلر راست که آلفا نامگزاری شده بود، در ژانویه 2012 منتشر شد. طراحی این زبان از طریق تجربه حاصل از نوشتن موتور چیدمان Servo اصلاح شده و Rust خودش را کامپایل کردهاست.
اما راست در حقیقت چیست؟! هر آنچه در بالا بود تنها به ما میگوید این یک زبان برنامهنویسی مثل C و C++ است.
ویژگیهای اصلی Rust
- مدیریت منابع
این مورد، یکی از بهترین ویژگیهای موجود در زبان برنامهنویسی Rust میباشد. راست بجای استفاده از الگوریتم brute force که در زبانهای دیگر استفاده میشود، از الگوریتم mutable borrowing بهره میگیرد. این الگوریتم اطمینان این را میدهد که منابع از طریق یک سیستم منحصر به فردی به نام Resource Acquisition Is Initialization مدیریت میشود. راست همچنین از پشتهی تخصیص مقدار برای مدیریت منابع استفاده میکند. - بدون نرخ انتزاع
راست میتواند میزان استفاده از حافظه را در روند اجرا دنبال کند؛ اما در زبان برنامهنویسی C، از تکنیک reference counting استفاده نمیشود. ایده این است که انتزاع سازی نباید روی پیادهسازی اصلی تاثیر مستقیمی داشته باشد. - امنیت حافظه
یکی از مهمترین ویژگیهایی که راست براساس آن شناخته شده است، امنیت حافظه در آن میباشد. در این زبان، تنها به آن دسته از مقادیر دادهای اجازه مقداردهی داده میشود که از یک الگوی ثابت و مشخص پیروی کند. درغیر اینصورت، به اشارهگرهای null اجازه کار نمیدهد. این موضوع باعث بالا رفتن امنیت حافظه میشود. راست یک کتابخانه اضافی دارد که وظیفهی آن بررسی null بودن یک پوینتر (اشارهگرد) بصورت مستقل است. - الگوی تطبیقی
راست از این ویژگی برای بررسی الگوی توکنها استفاده میکند. با استفاده از این روش میتوان متوجه شد که یک توکن از الگوی خاصی پیروی میکند یا خیر. منظور از توکنها اساسا یک لیست از دادهها هستند. - نوع دادهای
راس در عبارات برنامهنویسی، قابلیت تشخیص نوع دادهای را بصورت خودکار دارد. بنابراین شما سرعت بسیار بیشتری را در زمان توسعه اپلیکیشنهایتان در Rust خواهید داشت.
اصلا نیازی به یاد گرفتن راست است؟!
آیا ارزش آن را دارد که زمانتان را صرف یادگیری Rust کنید؟! جواب قطعا بله است. در ادامه، چندین دلیل برای این امر آورده شده است.
- گارانتی در حفاظت از حافظه
راست یکی از معدود زبانهای برنامهنویسی است که حفاظت از حافظه را برای شما تضمین میکند. این ویژگی باعث میشود که خطاها و مشکلات امنیتی کمتری در زمان دسترسی به حافظهی RAM اتفاق بیافتد. شما دیگر نیاز ندارید که با Null سر و کار داشته باشید. - استفاده از destructors
بسیاری از زبانهای برنامهنویسی، مبتنی بر ویژگی automatic garbage collection هستند. اما راست در این میان، از destructors استفاده میکند. - سازگاری با تمام سیستم عاملها
شما میتوانید از راست برای تمام سیستم عاملهای دنیا استفاده کنید. راست بر روی سیستم عاملهای ویندوز، مک و لینوکس بسیار سازگار و کارا است. - یادگیری ساده
اگر تا حدی با C و C++ آشنایی داشته باشید، باید گفت که استفاده از راست برایتان کار دشواری نخواهد بود. رلسا یک زبان عبارت محور است و شما میتوانید تمام این موارد را به سرعت و آسانی یاد بگیرید.
برنامههای Rust
به عنوان یک زبان سیستمی، از راست میشود در تهیهی حجم بزرگی از اپلیکیشنهای مختلف استفاده نمود. از این زبان میشود برای توسعه بازی، سیستمهای شبیهسازی، کامپوننت مربوط به مرورگرها، سیستمهای مدیریت فایل و حتی سیستمعامل استفاده کرد.
در حال حاضر، برخی از شرکتهای بسیار محبوب مانند موزیلا، دراپباکس و…، از این زبان برای توسعه اپلیکیشنهای خود استفاده میکنند. و هانطور ه در بالا نیز گفته شد، خود موزیلا نیز در آخرین نسخه از مرورگر خود یعنی Firefox Quantum، از قدرت Rust استفاده کرده است. در ادامه، پروژههای مختلفی که از راست استفاده میکنند را برایتان لیست کردهایم:
مبتنی بر مرورگر:
- Firefox
- Servo: موتور جستجوی وب موازی جدید موزیلا که با همکاری سامسونگ توسعه یافتهاست
- Quantum: یک پروژه متشکل از چندین زیرپروژه برای بهبود موتور مرورگر وب Gecko در Firefox توسعه یافته توسط Mozilla
مبتنی بر ابزار ساخت:
- Cargo: سیستم ساخت خودکار Rust
- Habitat: یک ابزار ساخت و استقرار از شرکت Chef Software (وب سایت رسمی)
پروژههای دیگر:
- Magic Pocket: سیستم فایل Dropbox که قدرت ماشینهای حافظه Diskotech petabyte را افزایش میدهد
- OpenDNS: بکارگیری زبان Rust در دو مؤلفه OpenDNS
- Redox OS: یک سیستم عامل ریزهسته
- Piston: یک موتور بازی (وب سایت رسمی)
- OnePush: یک سیستم اعلان رسانی توسعه یافته توسط OneSignal
- REmacs: یک پورت از Emacs به Rust
- MAIDsafe: پروژه اینترنتی P2P که در حال حاضر توسط تیم مستقر در Troon, Scotland توسعه یافته
- Lucidscape Mesh: یک موتور شبیهسازی توزیع شده بلادرنگ برای واقعیت مجازی
- Tor: یک شبکه ناشناس
پس بیایید راست شویم! 😀 اما منحرف نشویم 🙂
نظرات ثبت شده بدون دیدگاه