أعلن بيرل 7

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

سيكون التغيير الكبير في رقم الإصدار بمثابة نوع من الفاصل للانتقال إلى نموذج جديد لزيادة وظائف لغة Perl دون انتهاك ملحوظ للتوافق مع الإصدارات السابقة.
من المتوقع أن يساعد إصدار Perl 7 في جذب مطورين جدد إلى Perl والمساعدة في تبسيط عملية إضافة ميزات جديدة مهمة إلى اللغة مع الحفاظ على التوافق مع قاعدة التعليمات البرمجية للمشاريع الحالية. تم اختيار الرقم 7 لأنه تم استخدام لغة Perl 6 لتطوير اللغة الموجودة الآن هذا تطوير تحت اسم منفصل راكو. ومن المتوقع أن يتم إصدار الإصدار الأول من Perl 7 في العام المقبل. سيكون فرع Perl 5.32 هو الأخير في سلسلة Perl 5 ومن المقرر أن يتم دعمه لمدة تتراوح بين 5 إلى 10 سنوات.

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

يأمل Perl 7 أيضًا في تحقيق الاستقرار والتمكين افتراضيًا لبعض الميزات التجريبية الموجودة بالفعل، مثل التوقيعات الوظيفية ("استخدم توقيعات الميزة")، والتي تسمح، عند تعريف دالة، بتحديد الوسائط الواردة والتحقق التلقائي من أرقامها (يمكنك كتابة "sub foo ($left, $right) {" بدلاً من "sub foo { my($left, $right)) = @_;"). إنهم يخططون لتضمين دعم افتراضي لمشغل "isa" للتحقق مما إذا كان الكائن هو مثيل لفئة محددة أو فئة مشتقة منه ("if( $obj isa Package::Name)"، بالإضافة إلى إلغاء مرجعية postfix العمليات (postderef) "$ sref->$*" بدلاً من "${ $sref }"، "$aref->@*" بدلاً من "@{ $aref }" و "$href->%{ ... }" بدلاً من "%$href{ ... } "

المتنافسون على التعطيل افتراضيًا في Perl 7 هم:

  • تدوين استدعاء الكائنات غير المباشرة ("لا توجد ميزة QW (غير مباشر)") هي طريقة قديمة لاستدعاء الكائنات، باستخدام مسافة بدلاً من "->" ("method $object @param" بدلاً من "$object->$method(@param)"). على سبيل المثال، بدلاً من "my $cgi = new CGI" ستستخدم دائمًا "my $cgi = CGI->new".
  • واصفات الملفات العارية بدون إعلانات متغيرة ("لا توجد كلمات عارية::filehandle") - سيؤدي استخدام إنشاءات مثل "open FH, $file" إلى حدوث خطأ، ستحتاج إلى استخدام "open my $fh, $file". لن يؤثر التغيير على واصفات الملفات القياسية STDIN وSTDOUT وSTDERR وARGV وARGVOUT وDATA.
  • المصفوفات والتجزئات الوهمية متعددة الأبعاد بأسلوب Perl 4 ("لا متعدد الأبعاد').
    على سبيل المثال، سيؤدي تحديد "$hash{1, 2}" إلى حدوث خطأ؛ ستحتاج إلى استخدام مصفوفة متوسطة، على سبيل المثال "$hash{join($;, 1, 2)}".

  • الإعلان عن النماذج الأولية بأسلوب Perl 4 (تحتاج إلى استخدام "use :prototype()").

وفي الخطط الأبعد، يتوقعون تمكين دعم Unicode افتراضيًا، مما سيوفر للمطورين من تحديد "استخدام utf8" في الكود. بالنسبة للوحدات والبرامج النصية التي بها مشكلات في الإعدادات الافتراضية الجديدة، من الممكن العودة إلى سلوك Perl 5 عن طريق إضافة السطر "use compat::perl5" إلى التعليمات البرمجية. سيتم أيضًا حفظ الإعدادات الفردية ويمكن تغييرها بشكل فردي.

المصدر: opennet.ru

إضافة تعليق