
عندما استقال Andrei Alexandrescu كنائب لرئيس قسم لغة البرمجة D ، طُلب مني القيام بهذا الدور في المستقبل. ليست هناك حاجة للتحدث عن ذلك ، لكنني ما زلت أقول أن هذه القبعة كبيرة جدًا بالنسبة لي.
ما زلت أدخل دوري الجديد في المجتمع وأكتشف كيف أريد التصرف وما هو عليه حقًا. هذه العملية لا تحدث في فراغ ، لأن والتر معنا أيضًا.
في
منتديات D ، طُلب مني كتابة منشور على مدونة حول "أحلامي وخطواتي التالية لـ D" ، لذلك هذه هي النتيجة. ما أود أن أصبح مع D في المستقبل القريب:
أمن الذاكرة
"لكن D هي لغة مع GC!" ، أسمع تعجبكم. نعم ، لكنها أيضًا لغة برمجة نظام مع أنواع ومؤشرات غير مرجعية ، مما يعني أن D اليوم ليس آمنًا تمامًا للعمل مع الذاكرة.
كانت DIP1000 خطوة في الاتجاه الصحيح (نظام الاقتراض تقريبًا ، كما هو الحال في Rust ،
انظر هنا ) ، ولكن يجب أن يكون العمل مع الذاكرة آمنًا حتى يرفض المبرمج عبر "أعرف ما أفعله" باستخدام
@ سمة كتلة
موثوقة أو وظيفة. هذا يعني التبديل إلى
@ safe افتراضيا.
multithreading بسيطة وموثوقة
بالنسبة للجزء الأكبر لدينا بالفعل في النقطة الصحيحة - استخدام نموذج الممثل يزيل الكثير من المشاكل التي تنشأ عادة. يبقى لإنهاء العمل على السمة
المشتركة والقيام بكل شيء
@ آمنة .
اجعل D لغة البرمجة الافتراضية
تجعل إمكانيات D من حيث الانعكاس الثابت وإنشاء الشفرة مرشحًا مثاليًا لإنشاء التعليمات البرمجية التي يجب استدعاؤها من عدة لغات وبيئات مختلفة (مثل Python و Excel و R وغيرها). يتم ذلك عادةً عن طريق تحديد بنيات البيانات ومكالمات RPC بلغة تعريف الواجهة (IDL) ، ثم ترجمتها إلى لغات مدعومة باستخدام بروتوكول التبادل المناسب.
في حالة D ، لا شيء من هذا مطلوب. يمكنك كتابة التعليمات البرمجية الصناعية في D وبمساعدة المكتبات ، يمكن استدعاء هذا الرمز تلقائيًا من لغات أخرى. إضافة إلى كل هذا ، يمكنك بسهولة كتابة كود D الذي يعمل بسرعة أو أسرع من البدائل ، وسيكون انتصارا على جميع الجبهات.
انعكاس لا مثيل له
بدلاً من الطرق المتباينة للعمل مع واجهات برمجة التطبيقات المجزأة (__traits و std.traits و bikes) ، أود أن أمتلك مكتبة تركز جميع احتياجات التفكير باستخدام واجهة برمجة تطبيقات جميلة. أنا أعمل بالفعل على ذلك.
تبسيط إمكانية التشغيل المتداخل مع C ++
كما ذكرت في
خطابي في DConf 2019 ، حققت C ++ النجاح من خلال جعل الانتقال من C سلسًا تقريبًا. أرغب في أن يقوم مبرمجو C ++ الحاليون الذين لديهم قاعدة
تعليمات برمجية قديمة بالبدء في كتابة التعليمات البرمجية في D بنفس السهولة ، ولهذا السبب
كتبت dpp (
ملاحظة المترجم لرؤوس C ++ في D) ، لكن هذا ليس كل شيء ، و قد نحتاج إلى إجراء تغييرات على اللغة من أجل تكييف هذا الأمر في المستقبل.
سرعة التنمية
أعتقد أننا بحاجة إلى مترجم سريع بشكل لا يصدق حتى نتمكن من رفض إنشاء رمز ثابت للماكينة وتصميمها. في رأيي ، يجب أن تكون هذه هي الطريقة القياسية لتشغيل الكتل غير المبنية (اختبارات الوحدة
البدائية مدمجة في اللغة) لتقديم تعليقات سريعة ، بحيث يتعين على المبرمجين ترجمة التعليمات البرمجية الخاصة بهم فقط للحصول على أقصى أداء و / أو للنشر للمستخدمين النهائيين. سيسمح أيضًا بتقديم
REPL .
سلاسل محرف
في البداية ، كنت أعارض ذلك ، ولكن كلما فكرت في الأمر ، كان الأمر منطقيًا بدرجة أكبر بالنسبة لـ D. لماذا؟ الخلطات سلسلة. يُعد إنشاء الشفرة أحد نقاط القوة في D ،
وتتيح لك الرموز المميزة للسلسلة أن تسر بشكل مرئي كتل الكود التي هي في الواقع "مجرد سلاسل". سوف الاستيفاء سلسلة تبسيط استخدامها إلى حد كبير. حتى الآن ،
مشروع DIP قيد التطوير.
هذا ما حدث لي بعد نزهة طويلة على طول بحيرة جنيف. أود أن أعرف ما يفكر فيه المجتمع بشأنه ، وما هي أشكاله المفضلة وفرصه في D ، وكيف ، في رأيهم ، سيساعد هذا أو يعيق التقدم نحو D.
مناقشة على مد المنتدى هناتمت الترجمة باستخدام
www.DeepL.com/Translator (هذه ليست ترجمة تلقائية إذا لم يلاحظها أحد ، ولكن في الوقت نفسه يساعد هذا المترجم الذي يحتوي على عناصر AI كثيرًا)
سكرتير خاص الذي غاب عن
المادة السابقة من بلوق عن خطط D لتطوير المحمول. كان يشتبه في الإعلان (أوه ، دونات المذكورة) وطردت من مركز D.