لغة البرمجة راست
رست هي لغة برمجة أنظمة حديثة بدأ تطويرها في سنة 2010 من قبل شركة موزيلا و هي تركز على الأمان والسرعة والتزامن و هي لغة برمجت بها عملة ديم المشفرة . إنها لغة راست وهي لغة برمجة تحقق هذه الأهداف من خلال كونها آمنة للذاكرة دون استخدام جامع القمامة او ما يسمى Garbage collector.
قل مرحبا للعالم بلغة راست hello world :
// التالي هي الدالة الأساسية مين main التي ستنفذ في البرنامج و الذي يحتوي على وظيفة الطباعة println التي تقوم بطباعة الترحيب اهلا بالعالم:
fn main() { println
;(“Hello world”)
{
كانت لغة Rust هي أكثر اللغات المحبوبة لدى مجتمع المبرمجين على مدار أربع سنوات متتالية ، مما يشير إلى أن العديد ممن أتيحت لهم الفرصة لاستخدام لغة راست Rust وقعوا في حبها. ومع ذلك ، فإن ما يقرب من 97٪ من المشاركين في الاستطلاع الذين لم يستخدموا لغة رست Rust قد يتساءلون ، “هل تعلم لغة راست Rust هي صفقة ناجحة؟”
الإجابة المختصرة هي أن لغة راست Rust يحل نقاط الألم الموجودة في العديد من اللغات الأخرى ، مما يوفر خطوة قوية إلى الأمام مع عدد محدود من الجوانب السلبية.
سأعرض عينة مما تقدمه لغة راست Rust لمستخدمي لغات البرمجة الأخرى وكيف يبدو النظام حاليا. و سأتحدث عن الجوانب السلبية للغة رست أيضًا.
لغة راست هي لغة قادمة من اللغات المكتوبة ديناميكيًا:
من المرجح أن تستمر الجدالات بين المبرمجين الذين يفضلون الأنظمة الديناميكية على الأنظمة الثابتة لعقود أخرى ، ولكن من الصعب الجدال حول فوائد الأنواع الثابتة. ما عليك سوى إلقاء نظرة على صعود اللغات مثل تايب سكريبت TypeScript أو ميزات مثل تلميحات أنواع بايثون Python حيث أصبح الناس محبطين من الحالة الحالية للكتابة الديناميكية اليوم. تسمح اللغات المكتوبة إحصائيًا بالقيود التي يفحصها المترجم على البيانات وسلوكها ، مما يخفف من العبء المعرفي وسوء الفهم.
هذا لا يعني أن جميع أنظمة النوع الثابت متكافئة. تحتوي العديد من اللغات المكتوبة بشكل ثابت على علامة نجمية كبيرة بجوارها: فهي تسمح بمفهوم نول NULL. هذا يعني أن أي قيمة قد تكون كما تقول أو لا شيء ، مما يؤدي بشكل فعال إلى إنشاء نوع ثان ممكن لكل نوع. مثل لغة هاسكل Haskell وبعض لغات البرمجة الحديثة الأخرى ، تقوم لغة راست Rust بترميز هذا الاحتمال باستخدام نوع اختياري ، ويطلب منك المترجم التعامل مع حالة نان None. يمنع هذا حدوث خطأ تايب ايرور TypeError المخيف: لا يمكن قراءة الخاصية “فو” “foo” لخطأ وقت التشغيل الفارغ (أو ما يعادله باللغة) ، بدلاً من الترويج لها إلى خطأ وقت ترجمة يمكنك حله قبل أن يراه المستخدم. إليك مثال على وظيفة لتحية شخص ما سواء كنا نعرف اسمه أم لا ؛ إذا كنا قد نسينا حالة نان None في المباراة أو حاولنا استخدام الاسم كما لو كان قيمة سترينغ String موجودة دائمًا ، فإن المترجم سيشتكي.
تضع بعض اللغات المكتوبة بشكل ثابت عبئًا كبيرًا على المبرمج ، مما يتطلب منهم تكرار نوع متغير عدة مرات ، مما يعيق إمكانية القراءة وإعادة البناء. تسمح اللغات الأخرى المكتوبة بشكل ثابت باستدلال نوع البرنامج بالكامل. على الرغم من كونه ملائمًا أثناء التطوير الأولي ، إلا أن هذا يقلل من قدرة المحول البرمجي على توفير معلومات خطأ مفيدة عندما لا تتطابق الأنواع. تتعلم لغة راست Rust من كلا هذين الأسلوبين وتتطلب عناصر عالية المستوى مثل وسيطات الدالة والثوابت أن يكون لها أنواع واضحة ، مع السماح باستدلال الكتابة داخل الهيئات الوظيفية. في هذا المثال ، يمكن لمجمع راست Rust الاستدلال على نوع مرتين ، و 2 ، و 1 لأن معلمة val ونوع الإرجاع يتم الإعلان عنهما كأعداد صحيحة 32 بت.