معيار Rust الجديد: ما ينتظر المطورين في عام 2024

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Rust 2024 Edition: التغييرات الرئيسية للمطورين



يواصل مجتمع Rust إسعاد المطورين: قدم فريق اللغة Rust 2024 Edition — المعيار الجديد الذي يجلب تحسينات طال انتظارها إلى النظام البيئي. على عكس التصحيحات السنوية، فإن Edition هي نظرة عامة مهمة على الإمكانيات، تكسر التوافق العكسي في بعض الجوانب، ولكنها تقدم في المقابل كودًا أنظف وأكثر أمانًا. نحلل ما سيتغير تحديدًا للمطورين الذين يكتبون بلغة Rust.



تثبيت دوال async في traits



أحد أبرز الابتكارات هو تثبيت async fn في traits. في السابق، كان من الضروري استخدام حزم خارجية (مثل async-trait) للـ traits غير المتزامنة، مما أضاف عبئًا وعقّد الكود. الآن يدعم المترجم بشكل أصلي:



  • إعلان الطرق غير المتزامنة مباشرة في traits: async fn foo(&self) -> Result<String>
  • التوليد التلقائي لـ Future المتداخلة دون boxing يدوي
  • المرونة في التنفيذ — يمكن تنفيذ traits مع async fn لكل من الأنواع المتزامنة وغير المتزامنة


هذا يبسط إنشاء المكتبات للعمل مع الشبكة، قواعد البيانات، وأي عمليات غير متزامنة. لم يعد على المطورين الاختيار بين الراحة والأداء.



تحسين borrow checker وسلوك الاقتراض الجديد



في Rust 2024 Edition، أصبح نظام الاقتراض أكثر ذكاءً. التغييرات الرئيسية:



  • الاقتراض متعدد الأشكال — أصبح المترجم يفهم بشكل أفضل أن الاقتراض يمكن أن يكون قابلاً للتغيير أو غير قابل للتغيير حسب السياق، مما يقلل من عدد الأخطاء الخاطئة.
  • تحسين العمل مع زمن الحياة (lifetimes) — إدخال "placeholder lifetimes" في بعض الحالات يسمح بحذف التعليقات التوضيحية الصريحة مع الحفاظ على الأمان.
  • قواعد جديدة للإغلاقات — تتتبع الإغلاقات الآن بدقة أكبر المتغيرات التي يتم التقاطها بالمرجع وتلك التي يتم التقاطها بالقيمة، مما يقلل من عدد الأخطاء في مرحلة الترجمة.


للمبتدئين، هذا يعني صداعًا أقل مع borrow checker، وللمحترفين، كودًا أكثر تعبيرًا وإيجازًا.



تحسينات في بناء الجملة وجودة الحياة



لم ينس مطورو Rust بناء الجملة أيضًا. في 2024 Edition، ظهرت عدة تحسينات صغيرة:



  • الكلمة المفتاحية never — يمكن الآن استخدام ! (never type) في سياق أوسع، على سبيل المثال، في أنواع الإرجاع للدوال التي لا تنتهي أبدًا (panic، loop).
  • تحسين match مع تعبيرات guard — تدعم تعبيرات guard الآن تركيبات منطقية معقدة دون الحاجة إلى match متداخلة.
  • بناء جملة جديد للـ tuples — يمكن الآن استخدام (a, b) في بعض السياقات كنوع إرجاع دون تحديد الأقواس صراحة في الدوال.


هذه التغييرات تجعل الكود أكثر قابلية للقراءة وتقلل من كمية الكود النمطي (boilerplate).



ما يعنيه هذا للمطورين؟



Rust 2024 Edition ليست مجرد مجموعة من الميزات، بل هي تطور للغة نحو إنتاجية أكبر. لمطوري الويب، مبرمجي الأنظمة، وكل من يستخدم Rust في الإنتاج، يعني التحديث:



  • تبعيات أقل للحزم الخارجية للعمليات غير المتزامنة الأساسية.
  • أكثر توقعًا

المكتبات الموصى بها