عبدالفتاح الصلوي

نظرة على rust lang

كتبها : عبدالفتاح الصلوي / في رصيف : البرمجة

نظرة على rust lang

صعدت مؤخراً  rust lang كواحدة من أبرز لغات البرمجة، فبحسب استطلاع موقع stackoverflow لعام 2023 تصدرت قائمة اللغات المحببة للمبرمجين.  
تعتبر rust لغة برمجة حديثة إن لم تكن الأحدث على الساحة، ورغم ذلك فهي سريعة الانتشار،  فمنذ أن صدرت في مايو 2015 حيث تم انشائها من قبل Graydon Hoare ومن ثم تبني وتمويل التطوير من قبل mozilla،  وهي تجذب الانظار و تخطف القلوب.  


مالذي يميز هذه اللغة عن غيرها من اللغات وما نقاط قوتها ؟

تعد rust لغة برمجة على مستوى النظام مثلها مثل  لغة c, c++ وهذا النوع من اللغات يمكن أن يستخدم في بناء انظمة التشغيل ومحركات الالعاب والمعالجات، اذ يوفر هذا النوع من اللغات قدرة كبيرة من التفاعل مع العتاد المادي hardware .

بشكل عام يواجه المبرمجين عدة مشاكل أهمها :
- صعوبة كتابة كود آمن.
- صعوبة كتابة multi-threaded code.
- مشاكل ادارة الذاكرة.
وقد  جائت لغة rust للتركيز على ثلاث محاور:
- الامنية safety.
- السرعة speed.
- التزامن Concurrency.

ابرز نقاط قوة rust lang يمكن تلخيصها في :

- الاداء Performance :

من حيث تصميم اللغة فهي لا تملك Garbage Collector  وهذا يحسن الاداء في وقت التشغيل.

- Memory safety at compile time امان الذاكرة في وقت المعالجة:

يمكن اعتبار أن التطبيقات المبنية في rust امنة وخالية من مشاكل الذاكرة مثل المؤشرات المعلقة dangling  pointers وتسرب الذاكرة memory leaks.

- Multi-threaded applications تطبيقات متعددة المسارات (الخيوط):

يعد ownership أو الملكية من أبرز المفاهيم في rust. حيث توفر قواعد الملكية وسلامة الذاكرة الية للتزامن على مستوى اللغة والتعامل مع البيانات.

- دعم WASM:

تتميز ال Web Assembly او اختصارا WASM في قدرتها على تنفيذ العمليات المعقدة في المتصفح و الأجهزة المدمجة وغيرها، حيث يعمل الكود بكفائة وسرعة عالية. يمكن في لغة rust تحويل الكود الى WASM اذ ينفذ بكفائة وسرعة عالية.


تعد rust لغة سهلة التعلم، وإذا ما استثنينا بعض المفاهيم مثل: مفهوم الملكية ownership ومفهوم  Immutable و mutable  في المتغيرات، وال macro وبعض الاشياء الاخرى ، فإن بنية اللغة تبدو مالوفة وقريبة لمستخدمي اللغات الاخرى وخاصة لمطوري الويب حيث ستجدها تعرف المتغيرات باستخدام let, const وكذا مصطلحات مثل async ,await  كما في javascript  و ستجد  كثيرا من التوسع في ال triat الذي يعرفه مبرمجي php والكثير من الاشياء المشتركة ف لغات اخرى مثل go و paython.
على المستوى الشخصي فإن من أكثر الميزات التي احببتها في اللغة هو رسائل الخطأ، في حال وجود خطأ  عند معالجة تنفيذ البرنامج ستظهر لك رسالة تصف لك المشكلة بشكل واضح بعكس لغات اخرى.


Cargo :  

هو مدير ادارة الحزم في لغة rust ويقابله  composer في php و npm , yarn في javascript.
بينما مصطلح crate يطلق على المكتبات ويقابله  packages في php.


اطارات العمل في rust

بالرغم من نشأتها الحديثة نسبيا الا ان هناك العديد من اطارات العمل في لغة rust . ومنها :

- Axum
- Actix Web
- Rocket
- Yew
- Nickel
- Warp
- Tide
وغيرها .


- Tauri يشبه   electron js
- Dioxus :
هل تعرف cordova , react native, flutter , electron , touri ؟
 Dioxus يقوم بكل اعمالهم

بعض الروابط الهامة الخاصة باللغة:

الموقع الرسمي للغة
موقع توثيق اللغة
https://crates.io/
https://rustup.rs

علامات ذات صلة :