لغة Goose «أسرع من Rust»: كيف تعادل المعيار بعد ترتيب البيانات بإنصاف
أظهرت لغة Goose التي كتبها الذكاء الاصطناعي تفوقًا على Rust بمقدار 1.9 مرة في السرعة و1.8 مرة في الذاكرة. لاحظ المدوّن MrTeamlead أن السلاسل النصية في نسخة Rust تُخزَّن في الكومة (heap)، بينما هي في Goose داخل البنية نفسها. وبعد مواءمة التخطيط صارت النتيجة 46.7 مقابل 46.5 مللي ثانية. وبعد الانتقادات أزال مؤلف Goose المعيار المثير للجدل من المستودع.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
مشروع Goose محكوم عليه بالجدل الحاد: كتب الذكاء الاصطناعي لغة برمجة يُزعم أنها أسرع من C++ وRust. سنترك الجدل للمشجعين. الأكثر إثارة للاهتمام هي الآثار التي بقيت بعد الخلافات: فهي تُظهر كيف تُبنى هذه المقارنات وأين يختبئ الفخ فيها.
ما الذي وجده MrTeamlead
في مقطعَي فيديو يحلل المدوّن MrTeamlead معيار records_fixed.goose. وبحسب ادعاء المؤلفين، تتفوق Goose على نسخة Rust في الذاكرة بمقدار 1.8 مرة وفي السرعة بمقدار 1.9 مرة. ويُظهر المدوّن أن شيفرة Rust يمكن تسريعها 6.7 مرة إذا أُضيفت المعالجة المتوازية.
ويبيّن تحليل كاتب المقال على Habr أن هناك تعديلين أساسيين:
- استُبدل Vec::new() بـ Vec::with_capacity(N). وهذا تعديل مثير للجدل: فالمعيار يحاكي تدفق أحداث، وعددها غير معروف مسبقًا.
- استُبدل String بـ MyString الذي يخزّن حتى 15 حرفًا داخل الحدث نفسه. وهذا تعديل نزيه.
في نسخة Goose يوجد النص داخل السجل، أما في نسخة Rust فهو في الكومة عبر String. تخطيطات البيانات مختلفة، ولذلك فالمقارنة غير عادلة. وعندما وُضع النص في Rust بالطريقة نفسها صارت النتيجة 46.7 مقابل 46.5 مللي ثانية. وبالجوهر، كتب المدوّن ملف records_fixed.rs المفقود.
ولدى Goose معيار آخر هو records_var.goose، حيث يكون طول الكلمة (4–15 حرفًا) معاملًا لتوليد البيانات، لا حجمًا معروفًا للشيفرة. وبالنسبة إليه يبقى records.rs زوجًا صحيحًا. ورد مؤلف Goose على الانتقادات بأن records_fixed كان مجرد توضيح، وأن المعيار الحقيقي هو records_var. وقد أزال الملف المثير للجدل من المستودع.
كيف تتعامل Goose مع الذاكرة
الفكرة الرئيسية هي data stacks. وهي ليست مكدسات استدعاء، فليس فيها إطارات دوال، بل بيانات فقط. وتُحرَّر كالمكدس: عند الخروج من النطاق يتراجع الرأس إلى الخلف. تُحجز الذاكرة مسبقًا، لكنها تُربط بالعملية بصورة كسولة.
يحسب المترجم عدد data stacks أثناء الترجمة وفق أعمق سلسلة استدعاءات. ولا تُحتسب إلا الدوال التي تحمل مصفوفات متنامية، ويلزم العدد الأقصى من هذه المصفوفات الحية في آن واحد. وأثناء التشغيل لا تظهر مكدسات جديدة، والدالة المنتهية تسلّم مكدسها للاستدعاءات التالية. وثمن هذا النهج هو قيود على التكرار الذاتي (recursion). ففي لحظة الاستدعاء التكراري يجب ألا تحتوي الدالة على مصفوفات متنامية حية. وكل ما يجب أن يبقى بعد الاستدعاء يُنشأ في الخارج ويُمرَّر بالمرجع.
ويظهر الفرق فورًا في مثال طلب بعنصرين (المعرّف، اسم العميل، قائمة السلع):
- Goose: 29 بايت للطلب وصفر عمليات تخصيص في الكومة.
- Rust: 233 بايت عند البناء عبر collect و153 بعد shrink_to_fit()، إضافة إلى أربع عمليات تخصيص في الكومة.
يمكن فعل الشيء نفسه بلغة C أيضًا، فـ Goose محوّل شيفرة (transpiler). لكنه يدويًا هش: يمكن النظر، لكن التعديل خطر.
ماذا يعني هذا عمليًا
يخص الاستنتاج الأول نزاهة القياسات. قبل المقارنة «اللغة A أسرع من اللغة B» تحقق من أن البيانات موضوعة بتخطيط متطابق. فغالبًا لا تفوز اللغة، بل طريقة وضع البيانات في الذاكرة. والاستنتاج الثاني يخص البرمجة بالإحساس (vibe coding). فإذا كتب الذكاء الاصطناعي الشيفرة ولا يتوفر وقت يُذكر للمراجعة، فإن لغة ذات ذاكرة قابلة للتنبؤ بلا كومات ومخصصات تقلل خطر الحصول على حل بطيء افتراضيًا. وفي مثل هذه السيناريوهات تبدو Goose أكثر إقناعًا من Rust، حيث يسهل أن تكون الشيفرة «الساذجة» غير فعالة.
والقيود مهمة أيضًا. تفوز Goose حيث تكثر عمليات تخصيص الذاكرة وتجري الحسابات في خيط واحد. ولكي تتعادل في الحسابات الصرفة تحتاج إلى حلقات متوازية (par for) والتوجيه المتجهي (simd for)، وهما لم تُنفَّذا بعد. وللمقارنة: عمر المستودع أقل من ثلاثة أشهر (أغسطس 2026)، بينما احتاجت Rust خمس سنوات ونصف السنة للوصول إلى rayon. أما المشكلات الجوهرية للغة فلم تختفِ.
الدرس الرئيسي أوسع من مشروع واحد. فقد بدأت Orca، التي يكتب عنها المؤلف في الختام، في مارس 2026 وجمعت نحو 17 ألف commit وأكثر من ستة ملايين سطر من الشيفرة مع الاختبارات. في السابق كانت لغة كهذه ستبقى مشروعًا شخصيًا لسنوات. أما اليوم فسرعة إنشاء الأدوات بالذكاء الاصطناعي بحيث صارت «الإوز الأسود» حقيقة. أما المعايير فيجب إعادة التحقق منها فورًا.
- 12 نوفمبر 2026Claude in Chrome يطلب إذنًا لكل نقرة على المواقع المصنّفة ضمن الفئة 3
- 12 نوفمبر 2026AWS Quick يحصل على ستة وكلاء لمديري المنتجات: من شكاوى العملاء إلى المواصفات
- 12 نوفمبر 2026اعتبارًا من 12 نوفمبر: Anthropic تغلق Claude أمام الشركات الروسية، حتى لو كان كيانها القانوني مسجَّلًا في الخارج
- 12 نوفمبر 2026الذكاء الاصطناعي ساعد في كتابة الكود: على الاستوديو تقسيم الحقوق إلى 3 أجزاء من المنتج
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول ما الذي وجده MrTeamlead؟
في مقطعَي فيديو يحلل المدوّن MrTeamlead معيار records_fixed.goose. وبحسب ادعاء المؤلفين، تتفوق Goose على نسخة Rust في الذاكرة بمقدار 1.8 مرة وفي السرعة بمقدار 1.9 مرة. ويُظهر المدوّن أن شيفرة Rust يمكن تسريعها 6.7 مرة إذا أُضيفت المعالجة المتوازية. ويبيّن تحليل كاتب المقال على Habr أن هناك تعديلين أساسيين: استُبدل Vec::new() بـ Vec::with_capacity(N). وهذا تعديل مثير للجدل: فالمعيار يحاكي تدفق أحداث، وعددها غير معروف مسبقًا. استُبدل String بـ MyString الذي يخزّن حتى 15 حرفًا داخل الحدث نفسه. وهذا تعديل نزيه.
ما أبرز التفاصيل حول كيف تتعامل Goose مع الذاكرة؟
الفكرة الرئيسية هي data stacks. وهي ليست مكدسات استدعاء، فليس فيها إطارات دوال، بل بيانات فقط. وتُحرَّر كالمكدس: عند الخروج من النطاق يتراجع الرأس إلى الخلف. تُحجز الذاكرة مسبقًا، لكنها تُربط بالعملية بصورة كسولة. يحسب المترجم عدد data stacks أثناء الترجمة وفق أعمق سلسلة استدعاءات. ولا تُحتسب إلا الدوال التي تحمل مصفوفات متنامية، ويلزم العدد الأقصى من هذه المصفوفات الحية في آن واحد. وأثناء التشغيل لا تظهر مكدسات جديدة، والدالة المنتهية تسلّم مكدسها للاستدعاءات التالية.
ما أبرز التفاصيل حول ماذا يعني هذا عمليًا؟
يخص الاستنتاج الأول نزاهة القياسات. قبل المقارنة «اللغة A أسرع من اللغة B» تحقق من أن البيانات موضوعة بتخطيط متطابق. فغالبًا لا تفوز اللغة، بل طريقة وضع البيانات في الذاكرة. والاستنتاج الثاني يخص البرمجة بالإحساس (vibe coding). فإذا كتب الذكاء الاصطناعي الشيفرة ولا يتوفر وقت يُذكر للمراجعة، فإن لغة ذات ذاكرة قابلة للتنبؤ بلا كومات ومخصصات تقلل خطر الحصول على حل بطيء افتراضيًا. وفي مثل هذه السيناريوهات تبدو Goose أكثر إقناعًا من Rust، حيث يسهل أن تكون الشيفرة «الساذجة» غير فعالة. والقيود مهمة أيضًا.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.