تجزیه و تحلیل ریسک برای ابتکار Perl 7

کتاب دن (کتاب دن، پشتیبانی از بیش از 70 ماژول در CPAN، تجزیه و تحلیل را انجام داد خطرات هنگام اجرای پیشنهاد طرح اجرای Perl 7. به یاد بیاوریم که در شعبه Perl 7 آنها قصد دارند به طور پیش فرض حالت بررسی دقیق "strict" را فعال کنند، "use warnings" را فعال کنند و مقدار تعدادی از پارامترها را تغییر دهند که بر سازگاری با کدهای قدیمی تأثیر می گذارد.

انتظار می رود این تغییر تعداد زیادی از ماژول های CPAN را در پرل 7 شکسته و نیاز به تغییراتی در هر ماژول داشته باشد، که اجرای آن در سال مورد نظر غیرواقعی است، به خصوص که همه نویسندگان در دسترس نیستند. تغییرات در Perl 7 همچنین از استفاده از ماژول هایی که برای پشتیبانی بیشتر از آخرین نسخه Perl طراحی شده اند جلوگیری می کند.

علاوه بر این، مشکلات احتمالی زیر ذکر شده است:

  • سردرگمی در میان مبتدیان به دلیل برخی مثال ها و توصیه های کتابچه راهنمای نوشته شده برای Perl 7 در Perl 5 کار نمی کند.
  • تاثیر بر توسعه تک لاینرها مطالعه نشده است. Perl به طور فعال نه تنها برای نوشتن اسکریپت های بزرگ، بلکه برای ایجاد یک خط و اسکریپت های کوتاه برای نیازهای مدیران استفاده می شود، که در آن استفاده از حالت سخت غیر ضروری است.
  • توزیع ها با ارائه همزمان فایل های اجرایی برای اجرای اسکریپت های Perl 7 و Perl 5 مشکل دارند (انتظار می رود داستان با پایتون 2 و 3 تکرار شود).
  • کد نوشته شده برای Perl 7 لازم نیست به طور خاص توجه داشته باشد که در Perl 5 اجرا نمی شود؛ بسیاری از توسعه دهندگان حداقل نسخه پشتیبانی شده را مشخص نمی کنند.
  • ابزارهای مختلف و ماژول های مبتنی بر Perl 5 نیاز به اصلاح دارند.
  • آماده سازی پرل 7 به دلیل تخصیص مجدد منابع، توسعه ویژگی های جدید پرل را برای مدتی متوقف می کند.
  • خطر فرسودگی و خروج توسعه دهندگان فعال مفسر Perl، ماژول ها، ابزارها و بسته های همراه به دلیل حجم کار اضافی زیاد بدون انگیزه مناسب وجود دارد (همه با نیاز به ایجاد Perl 7 موافق نیستند).
  • فرهنگ در جامعه و نگرش نسبت به ثبات پرل اساساً تغییر خواهد کرد.
  • اعتبار زبان به دلیل انتقاداتی مبنی بر اینکه Perl 7 با کد موجود در غیاب چیزی اساساً جدید ناسازگار است، تضعیف خواهد شد.

برای هموار کردن پیامدهای منفی، دن بوک طرح خود را پیشنهاد کرد که از شکاف سازگاری جلوگیری می کند. پیشنهاد می‌شود همان روند توسعه را حفظ کنید و به جای 5.34.0، شماره نسخه بعدی 7.0.0 را اختصاص دهید، که در آن پشتیبانی از نماد فراخوانی غیرمستقیم شی را غیرفعال می‌کنیم و برخی ویژگی‌های جدید مانند try/catch را فعال می‌کنیم. تغییراتی مانند «استفاده از سخت‌گیرانه» و «اخطارهای استفاده» پیشنهاد می‌شود با مشخص کردن صریح نسخه Perl در کد از طریق پراگما «use v7» تنظیم شوند (قطعیت قبلاً به طور پیش‌فرض برای «استفاده از v5.12» و نسخه‌های جدیدتر فعال شده است. ).

به‌طور پیش‌فرض، توصیه می‌شود که مفسر مجموعه‌ای از پارامترها را حفظ کند که با Perl 5 تفاوتی ندارند، به استثنای فرآیند استاندارد برای پاک کردن نحو منسوخ که قبلاً استفاده می‌شد. پشتیبانی از ویژگی‌های قدیمی‌تر و نحو منسوخ شده می‌تواند مطابق با قوانین منسوخ شدن موجود ادامه یابد. پیشنهاد شده است به استفاده از عناصر جدید Perl 7 در کد علامت داده شود و سبک های جدید و قدیمی را با استفاده از پراگما "use v7" جدا کنید.

منبع: opennet.ru

اضافه کردن نظر