معيار Rust الجديد حصل على ميزة غير متوقعة: جامع القمامة (Garbage Collector)
بالأمس، 14 أكتوبر 2021، قدم فريق تطوير لغة Rust تحديثًا للمعيار — Rust 2021 Edition. لكن المفاجأة الكبرى لم تكن التحسين المنتظر لنظام الملكية (ownership)، بل الإدراج المفاجئ لجامع القمامة التجريبي (GC). أثار هذا القرار ردود فعل عنيفة في المجتمع: وصفه العديد من المطورين بأنه "خيانة لفلسفة اللغة".
وفقًا للمدونة الرسمية لـ Rust، تم تسمية الميزة الجديدة «Rust GC Preview». وهي متاحة في الإصدارات الليلية (nightly builds) تحت العلم #![feature(rustc_gc)]. تنص المواصفات على أن جامع القمامة يعمل فقط في وضع محدود — للأنواع المميزة بـ trait Gc. "نحن لا نتخلى عن نموذج الملكية"، صرحت كارول نيكولز، المطور الرئيسي لـ Rust في Mozilla. "GC هو خيار للنماذج الأولية والسيناريوهات التي لا تكون فيها سلامة الذاكرة حرجة، مثل البرامج النصية أحادية الخيط".
وفقًا لمستودع rust-lang/rust، تمت إضافة حوالي 12,000 سطر من الكود في الـ commit #89765، لتنفيذ جامع تتبع (tracing collector) أساسي. الأداء، وفقًا للاختبارات الأولية، أقل بنسبة 40% من إدارة الذاكرة اليدوية في معايير الأداء القياسية (benchmark suite). ومع ذلك، بالنسبة للكود الذي يستخدم بشكل مكثف هياكل البيانات الديناميكية (مثل الرسوم البيانية أو الأشجار)، قد تكون الزيادة في سرعة التطوير كبيرة.
انقسم الخبراء. جوناثان تيرنر، مؤلف كتاب "Rust in Action"، كتب في تغريدة له على تويتر: "هذه إما خطوة عبقرية لجذب مطوري Python، أو خطأ قاتل. Rust كانت دائمًا اللغة التي لا تقدم تنازلات". في الوقت نفسه، أشار ممثلو شركة Amazon (المستخدم النشط لـ Rust): "نرحب بأي تجارب، لكن في أنظمة الإنتاج (production)، لن يظهر GC خلال 2-3 سنوات القادمة".
تجدر الإشارة إلى أنه في عام 2021، كانت Rust قد دخلت بالفعل قائمة أفضل 10 لغات وفقًا لـ TIOBE، وكان دمجها في نواة Linux (مشروع Rust for Linux) قد بدأ للتو. قد تؤدي الميزة الجديدة إما إلى تسريع اعتماد اللغة في تطوير الويب، أو إلى إبعاد مبرمجي الأنظمة.
النص الكامل لـ RFC #3127 متاح على GitHub. من المتوقع إصدار نسخة مستقرة مع GC في موعد لا يتجاوز عام 2023.