مكتبة roc-deflate بلغة Roc الوظيفية تقترب من libdeflate المكتوبة بـ C بفارق وسيط 2.6% على M1
نُشر في 22 أكتوبر 2026 قياس بعنوان How close can pure functional programming get to C، يقارن مكتبة ضغط اسمها roc-deflate، كتبها Niclas Ahden بالكامل بلغة Roc على مترجمها الجديد، بمكتبة libdeflate المكتوبة بـ C والمعروفة بأنها محسّنة إلى أقصى حد، بما في ذلك تعليمات SIMD.
ولغة Roc لغة وظيفية بحتة، فيها إدارة تلقائية للذاكرة وفحص إجباري للحدود عند كل وصول إلى مصفوفة، أي أنها تمنع القراءة خارج المصفوفة بدل أن تتركها للمبرمج. وهذه الضمانات عادة ما يُفترض أنها تكلّف أداءً ملحوظًا.
وشمل القياس 144 حالة على مجموعة ملفات Silesia، باستخدام الواجهات غير التدفقية، وجاءت المخرجات متطابقة بين المكتبتين. وعلى جهاز Mac بمعالج M1 من طراز 2021، كان الوسيط أبطأ بنسبة 2.6%. وعلى معالج Ryzen 9 3900X بنظام Linux، كان أبطأ بنسبة 8.9%. وكانت أسوأ حالة أبطأ بـ 18%، وأفضلها أسرع بـ 18%.
ومن أمثلة القياس ملف dickens على M1، إذ بلغت سرعة libdeflate فيه 230.57 ميجابايت في الثانية، مقابل 202.92 لمكتبة roc-deflate.
والفرق بين الجهازين هو الجزء الأهم. فالكود واحد حرفيًا، والمعماريتان مختلفتان، والفجوة بينهما تضاعفت ثلاث مرات تقريبًا. فالحكم على لغة بأنها أبطأ يبقى ناقصًا ما لم يحدد العتاد الذي قيست عليه.
ولا يعني ذلك أن Roc ستحل محل C. لكنه يحوّل قرار اختيار C من أجل الأداء في جزء حساس من النظام إلى موازنة بين رقم صغير يمكن قياسه وبين أمان الذاكرة الذي يُتنازل عنه مقابله.