مقدمة عن Android Rust

يتيح نظام Android الأساسي إمكانية تطوير مكوّنات نظام التشغيل الأصلية بلغة Rust، وهي لغة حديثة لبرمجة الأنظمة توفّر ضمانات بشأن أمان الذاكرة وتتسم بأداء مكافئ للغة C/C++. تستخدم لغة Rust مجموعة من عمليات التحقّق في وقت التجميع تفرض الفترة منذ الإنشاء للكائن ومالكه، وعمليات تحقّق في وقت التشغيل تضمن إمكانية الوصول إلى الذاكرة بشكل صالح، ما يلغي الحاجة إلى برنامج لجمع البيانات غير المرغوب فيها.

توفّر Rust مجموعة من ميزات اللغة الحديثة التي تتيح للمطوّرين أن يكونوا أكثر إنتاجية وثقة في الرموز البرمجية الخاصة بهم:

  • البرمجة المتزامنة الآمنة: سهولة استخدامها تتيح للمستخدمين كتابة رمز برمجي فعال وآمن للاستخدام المتزامن، ما أدى إلى ظهور شعار التزامن بلا خوف الخاص بلغة Rust.
  • نظام أنواع تعبيري: تساعد لغة Rust في منع أخطاء البرمجة المنطقية من خلال السماح بأنواع تعبيرية للغاية (مثل أغلفة Newtype، ومتغيرات التعداد مع المحتوى).
  • عمليات تحقّق أقوى في وقت الترجمة: يؤدي رصد المزيد من الأخطاء في وقت الترجمة إلى زيادة ثقة المطوّرين في أنّ الرمز البرمجي يعمل على النحو المنشود عند ترجمته بنجاح.
  • إطار عمل الاختبار المضمّن: توفّر لغة Rust إطار عمل اختبار مضمّنًا يمكن وضع اختبارات الوحدة فيه بجانب التنفيذ الذي تختبره، ما يسهّل تضمين اختبارات الوحدة.
  • فرض معالجة الأخطاء: يمكن للدوال التي تتضمّن أخطاء قابلة للاسترداد أن تعرض نوع النتيجة، والذي سيكون إما نوعًا ناجحًا أو نوعًا يتضمّن خطأ. يطلب المترجم من المتصلين التحقّق من نوع الخطأ في تعداد Result الذي يتم عرضه من استدعاء دالة والتعامل معه. يقلّل ذلك من احتمال حدوث أخطاء نتيجةً لحدوث حالات تعذُّر لم يتم التعامل معها.
  • الإعداد: يتطلّب Rust إعداد كل متغيّر إلى عنصر قانوني من نوعه قبل استخدامه، ما يمنع الإعداد غير المقصود إلى قيمة غير آمنة.
  • التعامل الأكثر أمانًا مع الأعداد الصحيحة: جميع عمليات التحويل من النوع عدد صحيح هي عمليات تحويل صريحة. لا يمكن للمطوّرين إجراء عملية تحويل الأنواع عن طريق الخطأ أثناء استدعاء دالة عند التعيين إلى متغير، أو عند محاولة إجراء عمليات حسابية باستخدام أنواع أخرى. يتم تلقائيًا تفعيل ميزة التحقّق من تجاوز سعة التخزين في Android للغة Rust، ما يتطلّب أن تكون عمليات تجاوز سعة التخزين واضحة.

لمزيد من المعلومات، يُرجى الاطّلاع على سلسلة مشاركات المدوّنة حول إتاحة لغة Rust على Android: