# Niko Matsakis من فريق Rust: نظام الأنواع يضيّق مساحة أخطاء الـ agents قبل الاختبارات

> **المغزى:** المغزى: مع كود يكتبه الـ agent بسرعة وبكميات كبيرة، يصبح السؤال عن أي لغة: هل تمنع فئات من الأخطاء من الأساس، أم تتركها مفتوحة وتنتظر أن تلتقطها الاختبارات.

- المصدر: المغزى (https://almaghza.com/a/2026-10-14-rust-type-system-agents-matsakis/)
- التاريخ: 3 جمادى الأولى - 14 أكتوبر 2026 (2026-10-14)
- القسم: برمجيات
- الوسوم: Rust، AI Agents، Java

نشر Niko Matsakis، أحد مهندسي لغة Rust الأساسيين، في 14 أكتوبر 2026 مقالة عن علاقة البرمجة بالـ agents باللغة، موسّعة من محاضرة ألقاها في REBASE ضمن مؤتمر SPLASH. ويشرح فكرته بمثال من سطر واحد.

السطر هو تأكيد يقول إن قيمة ما تساوي قيمة أخرى. في Java، لا يمكن إثبات صحة سطر مثل assert this.foo == bar محليًا، لأن thread آخر ربما غيّر القيمة بين السطر السابق وهذا السطر. فالتحقق يتطلب قراءة بقية البرنامج. أما في Rust، فإذا كانت الدالة تأخذ &mut self، فاللغة تضمن أن هذا المرجع هو الوحيد الذي يملك الوصول إلى القيمة، فيصح التأكيد المكافئ دون قراءة أي شيء آخر.

وهنا يأتي دور الـ agents. فهي تكتب كودًا كثيرًا وبسرعة، ويرى Matsakis أن الاختبارات وحدها لا تكفي. فالاختبار يثبت أن الحالة التي جُرّبت تعمل، لا أنه لا توجد حالة أخرى تكسر البرنامج. أما نظام الأنواع فيضيّق مساحة الخطأ المتاحة من البداية، ويسمي ذلك guardrails.

لكنه يضيف حدًا لذلك: نظام الأنواع يكشف غياب أخطاء معينة، لا وجود الصحة. ولهذا يقترح أدوات إثبات مثل Verus وCreusot وAeneas وKani، ويقول إن مدقق الاستعارة (borrow checker) يسهّل عمل الـ SMT solver، أي الأداة التي تتحقق آليًا من صحة الشروط المنطقية.

وينقل Matsakis عن David Tolnay أن Meta كتبت هذا العام كودًا أصليًا بلغة Rust يفوق ما كتبته في السنوات التسع السابقة مجتمعة.

ولا تدعو المقالة إلى ترك اللغات الأخرى. لكنها تطرح سؤالًا ينطبق على أي لغة تعمل بها الفرق اليوم: هل تضيّق مساحة الخطأ قبل الوصول إلى الاختبار، أم تتركها مفتوحة.

## المصادر

- [مقالة Niko Matsakis](https://smallcultfollowing.com/babysteps/blog/2026/10/14/agentic-dev-and-rust/)
- [أداة Verus لإثبات صحة كود Rust](https://github.com/verus-lang/verus)
- [أداة Kani للتحقق من كود Rust](https://github.com/model-checking/kani)
- [شرح مدقق الاستعارة في كتاب Rust الرسمي](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html)
