لماذا لم يتم إعادة كتابة Discourse بلغة Rust؟

Discourse آمن من ناحية الذاكرة. Ruby هي لغة آمنة من ناحية الذاكرة؛ جميع اللغات التي تجمع القمامة آمنة. الفرق الرئيسي مع Rust في هذا الصدد هو متى يتم إجراء فحوصات الأمان؛ تقوم Rust بها في وقت الترجمة، وتقوم Ruby بها في وقت التشغيل.

تتعامل Rust مع عدد قليل فقط من فئات الأخطاء، وبشكل أساسي تلك الناتجة عن افتقار C++ لجمع القمامة. بالتأكيد من الرائع أنهم وجدوا طريقة للقيام بذلك مع الحفاظ على فوائد الأداء النظرية الممكنة مع المؤشرات، لكن هذا لا يمنع بأي حال من الأحوال أنواع الأخطاء التي قد تراها كمستخدم. على سبيل المثال، إذا استخدمت < عندما كنت أقصد <=، وحصلت على خطأ “off-by-one” نتيجة لذلك، فلن تنقذني Rust. إذا نسيت تشغيل رسالة نجاح بعد اكتمال إجراء ما، فلن تنقذني Rust.

ما يمنع الأخطاء بالفعل هو نوع التطوير الموجه بالاختبارات الذي ينشره Discourse بالفعل. هناك عدد قليل جدًا من المشاريع التي يمكنك نشرها مباشرة من master وتتوقع أن تكون مستقرة، ولكن Discourse هو أحدها.

تظهر “المنصات الحديثة” في كل مكان باستخدام JavaScript للواجهة الخلفية والواجهة الأمامية. تحتل Ruby المرتبة الثانية خلف Rust في الشعبية (Kotlin بينهما)، لذا فهي ليست لغة نادرة في الوقت الحالي. بالتأكيد، قد تبدو الأمور مختلفة بعد 10 سنوات أخرى، ولكن حتى إعادة الكتابة إلى Rust ستكون ديونًا تقنية في غضون 10 سنوات.

من الصعب نقل مدى سذاجة هذا البيان، ولهذا السبب يضحك الجميع على الفكرة. لقد رأيت مطوري يعيدون هيكلة التعليمات البرمجية لمدة 3 سنوات حتى الآن، وهم على وشك البدء في الترحيل من wxWidgets/ShuttleGUI إلى Qt/QML - وهو، للسياق، انتقال من C++ إلى C++، فقط مجموعة أدوات واجهة مستخدم مختلفة. من الصعب فقط تحويل التعليمات البرمجية مع ضمان بقاء السلوك متطابقًا. 12-16 يومًا هو الوقت الذي ستحتاجه للتخطيط فقط قبل أن يبدأ أي شخص في العمل على الأرجح.

15 إعجابًا