مقدمة إلى Rust: لماذا يجب أن تبدأ الآن
Rust هي لغة برمجة أنظمة تجمع بين أداء C++ وأمان الذاكرة المضمون على مستوى المترجم. في عام 2025، تواصل Rust التطور بنشاط: فهي تُستخدم في نواة Linux، ومتصفح Firefox، وأدوات سطر الأوامر، وحتى في تطوير الويب (عبر WebAssembly). إذا لم تكن قد جربت Rust بعد، فهذا هو الوقت المناسب - فقد أصبح المجتمع أكثر ودية، والأدوات أكثر سهولة، والوثائق أكثر اكتمالاً.
في هذه المقالة، سننتقل من التثبيت إلى كتابة برنامج ذي معنى. ستتعلم كيفية إعداد البيئة، وكتابة أول كود، وفهم المفاهيم الأساسية (الملكية، الاقتراض، زمن الحياة) وتطبيقها فورًا عمليًا. في نهاية المقال، سيكون لديك مشروع عملي وفهم لاتجاهك التالي.
1. تثبيت Rust وإعداد البيئة
1.1. التثبيت عبر rustup
أسهل طريقة لتثبيت Rust هي استخدام الأداة الرسمية rustup. فهي تدير إصدارات المترجم وتسمح بالتحديث بسهولة. افتح الطرفية ونفذ الأمر:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shبعد التثبيت، أعد تشغيل الطرفية أو نفذ source $HOME/.cargo/env. تحقق من أن كل شيء يعمل:
rustc --versioncargo --versionيجب أن ترى شيئًا مثل rustc 1.78.0 (2024-05-02) - قد يختلف الإصدار، لكن المهم أن الأوامر تُنفذ دون أخطاء.
1.2. ما هو Cargo؟
Cargo هو مدير الحزم ونظام البناء لـ Rust. يقوم تلقائيًا بتنزيل التبعيات، وترجمة الكود، وإدارة المشاريع. لن تحتاج إلى استدعاء rustc يدويًا - Cargo سيفعل كل شيء نيابة عنك.
1.3. المحررات وبيئات التطوير المتكاملة
للعمل المريح، أوصي باستخدام:
- VS Code مع إضافة
rust-analyzer- الإكمال التلقائي، التحقق من الأخطاء، إعادة الهيكلة. - IntelliJ IDEA مع إضافة Rust - أداة قوية لكنها تتطلب موارد أكثر.
- Vim/Neovim مع coc-rust-analyzer - لمطوري الطرفية.
بعد تثبيت الإضافة، افتح مجلد المشروع - سيلتقط rust-analyzer الإعدادات تلقائيًا.
2. كتابة أول برنامج في Rust
2.1. إنشاء مشروع عبر Cargo
لننشئ مشروعًا جديدًا:
cargo new hello_rustcd hello_rustالأمر cargo new ينشئ مجلدًا بملف Cargo.toml (بيان المشروع) ومجلدًا فرعيًا src بملف main.rs. افتح src/main.rs - يوجد هناك قالب بالفعل:
fn main() { println!("Hello, world!");}شغّل البرنامج:
cargo runسترى Hello, world! في الطرفية. تهانينا - لقد قمت للتو بترجمة وتنفيذ أول برنامج لك في Rust!
2.2. تحليل هيكل الكود
fn main()- نقطة الدخول إلى البرنامج. جميع برامج Rust تبدأ بهذه الدالة.println!- ماكرو لإخراج النص إلى الطرفية. علامة التعجب تميز الماكرو عن الدالة العادية.- ينتهي السطر بفاصلة منقوطة - هذا إلزامي (باستثناء التعبيرات التي تُرجع قيمة).
3. المفاهيم الأساسية في Rust: المتغيرات، الأنواع، وإدارة الذاكرة
3.1. المتغيرات وعدم القابلية للتغيير
في Rust، المتغيرات غير قابلة للتغيير افتراضيًا. هذا ليس خطأ، بل ميزة - بهذه الطريقة يضمن المترجم أن البيانات لن تتغير عن طريق الخطأ. لجعل المتغير قابلًا للتغيير، استخدم الكلمة المفتاحية mut:
fn main() { let x = 5; // غير قابل للتغيير // x = 6; // خطأ: cannot assign twice to immutable va