تعرّف على ما يميّز Wren
Wren لغة برمجة نصية صغيرة وسريعة، قائمة على الأصناف وتدعم التزامن. فكّر في Smalltalk داخل حزمة بحجم Lua، مع لمسة من Erlang، وملفوفة بصياغة حديثة مألوفة.
صغيرة. الآلة الافتراضية أقل من 4,000 فاصلة منقوطة من كود C مقروء ومعلَّق عليه بحب.
سريعة. مترجم ذكي يمر على الكود مرة واحدة ينتج كودًا بايتيًا محكمًا وفعّالًا.
قائمة على الأصناف. الأصناف والكائنات في صميم كل شيء.
تدعم التزامن. ألياف خفيفة مدمجة في اللغة نفسها.
نصية. قابلة للتضمين، بلا تبعيات، بمكتبة قياسية صغيرة، وواجهة C API سهلة الاستخدام.
قلب Wren هو الآلة الافتراضية. إن الآلة الافتراضية لـ Wren هي جوهر اللغة، وهي التي تنفّذ كل كود Wren المصدري. وهي مجرد مكتبة، وليست تطبيقًا مستقلًا. وقد صُممت لتُضمَّن داخل تطبيق مضيف أكبر.
يمكنك أن تجد Wren مضمّنة في مشاريع مثل:
بل يمكنك تضمين Wren داخل مشاريعك الخاصة. ولأغراض Exercism، التطبيق المضيف الذي سنستخدمه هو Wren Console، ما يتيح لنا تشغيل نصوص Wren واختبارها من الطرفية.
أنشأ Wren في الأصل Bob Nystrom، صاحب كتاب Crafting Interpreters الشهير. وقد صمّم أكثر من لغة، لكنه يشرح تحديدًا ما أدى إلى إنشاء Wren:
هناك عدد من لغات البرمجة النصية المستخدمة للتضمين في التطبيقات. Lua هي الرئيسية، وقد كانت TCL كذلك في السابق. وهناك أيضًا Guile، وJavaScript بشكل متزايد، وبعض التطبيقات تضمّن Python. أنا مطوّر ألعاب سابق، لذا حين أفكر في «البرمجة النصية»، أميل إلى التفكير في «برمجة الألعاب».
Lua لغة جيدة: صغيرة وبسيطة وسريعة. لكنها أيضًا، ولا أقصد بهذا انتقادًا، غريبة إذا كنت معتادًا على لغات مثل C++ وJava. فالصياغة مختلفة، والدلالات، وخاصة نموذج الكائنات، غير معتادة. يمكن لأي شخص أن يعتاد على الفهرسة بدءًا من 1، لكن أشياء مثل الجداول الوصفية تُظهر بوضوح أن الكائنات رُكّبت على Lua بعد أن وُجدت.
أعتقد أن هناك مجالًا للغة بسيطة مثل Lua، لكنها تبدو طبيعية لمن لديه خلفية في البرمجة كائنية التوجه. وWren هي محاولتي لتحقيق ذلك.
يمكنك تجربتها سريعًا داخل متصفح الويب (دون تثبيت أي شيء). وإذا أردت أن تجرّب Wren داخل واجهة أنيقة، فألقِ نظرة على Wren Playground.