تحليل المخاطر لمبادرة بيرل 7

دان بوك (كتاب دان)، ودعم أكثر من 70 وحدة في CPAN، أجرى التحليل المخاطر عند تنفيذ المقترح خطة تنفيذ بيرل 7. دعونا نتذكر أنهم في فرع Perl 7 يعتزمون تمكين وضع التحقق الصارم "صارم" افتراضيًا، وتنشيط "استخدام التحذيرات" وتغيير قيمة عدد من المعلمات التي تؤثر على التوافق مع الكود القديم.

من المتوقع أن يؤدي التغيير إلى كسر عدد كبير من وحدات CPAN في Perl 7 ويتطلب إجراء تغييرات على كل وحدة، وهو أمر غير واقعي لتنفيذه خلال السنة المستهدفة، خاصة أنه لا يظل جميع المؤلفين متاحين. ستمنع التغييرات في Perl 7 أيضًا استخدام الوحدات النمطية المصممة لدعم أكثر من مجرد الإصدار الأحدث من Perl.

بالإضافة إلى ذلك، تم ذكر المشاكل المحتملة التالية:

  • الارتباك بين المبتدئين بسبب بعض الأمثلة والتوصيات من الأدلة المكتوبة لـ Perl 7 لا تعمل في Perl 5.
  • لم تتم دراسة التأثير على تطور الخطوط الفردية. يتم استخدام لغة Perl بشكل نشط ليس فقط لكتابة البرامج النصية الكبيرة، ولكن أيضًا لإنشاء نصوص مفردة ونصوص قصيرة لتلبية احتياجات المسؤولين، حيث يكون استخدام الوضع الصارم غير ضروري.
  • تواجه التوزيعات مشكلة في تسليم الملفات القابلة للتنفيذ في نفس الوقت لتشغيل البرامج النصية لـ Perl 7 وPerl 5 (من المتوقع أن تتكرر القصة مع Python 2 و3).
  • ليس من الضروري أن تشير التعليمات البرمجية المكتوبة لـ Perl 7 على وجه التحديد إلى أنها لن تعمل في Perl 5؛ لن يحدد العديد من المطورين الحد الأدنى من الإصدار المدعوم.
  • سوف تتطلب الأدوات المساعدة والوحدات النمطية المختلفة المستندة إلى Perl 5 تصحيحات.
  • سيؤدي إعداد Perl 7، بسبب إعادة تخصيص الموارد، إلى تجميد تطوير ميزات Perl الجديدة لبعض الوقت.
  • هناك خطر الإرهاق ورحيل المطورين النشطين لمترجم Perl والوحدات والأدوات والحزم المصاحبة بسبب عبء العمل الإضافي الكبير دون الدافع المناسب (لا يتفق الجميع على الحاجة إلى إنشاء Perl 7).
  • سوف تتغير الثقافة السائدة في المجتمع والموقف تجاه استقرار بيرل بشكل جذري.
  • سيتم تقويض سلطة اللغة بسبب الانتقادات القائلة بأن لغة Perl 7 غير متوافقة مع الكود الحالي في حالة عدم وجود شيء جديد بشكل أساسي.

وللتغلب على العواقب السلبية، اقترح دان بوك خطته التي ستتجنب فجوة التوافق. يُقترح الحفاظ على نفس عملية التطوير وبدلاً من 5.34.0، تعيين رقم الإصدار التالي 7.0.0، حيث سنقوم بتعطيل دعم تدوين استدعاء الكائنات غير المباشرة وتمكين بعض الميزات الجديدة مثل المحاولة/التقاط. يُقترح تنظيم التغييرات مثل "استخدام صارم" و"استخدام تحذيرات" من خلال التحديد الصريح لإصدار Perl في الكود من خلال براغما "استخدام v7" (يتم تمكين الصارم بالفعل افتراضيًا لـ "استخدام v5.12" والإصدارات الأحدث ).

افتراضيًا، يوصى بأن يحتفظ المترجم بمجموعة من المعلمات التي لا تختلف عن Perl 5، باستثناء العملية القياسية لتنظيف بناء الجملة القديم الذي تم استخدامه من قبل. يمكن الاستمرار في إيقاف دعم الميزات الأقدم وبناء الجملة المهملة وفقًا لقواعد الإيقاف الحالية. يُقترح الإشارة إلى استخدام عناصر Perl 7 الجديدة في الكود وفصل الأنماط الجديدة والقديمة باستخدام براغما "استخدام v7".

المصدر: opennet.ru

إضافة تعليق