Analisis Risiko untuk Inisiatif Perl 7

Dan Buku (Dan Buku), mendukung lebih dari 70 modul di CPAN, melakukan analisis risiko ketika mengimplementasikan usulan tersebut Rencana implementasi Perl 7. Mari kita ingat bahwa di cabang Perl 7 mereka bermaksud untuk mengaktifkan mode pemeriksaan ketat "ketat" secara default, mengaktifkan "peringatan penggunaan" dan mengubah nilai sejumlah parameter yang memengaruhi kompatibilitas dengan kode lama.

Perubahan ini diperkirakan akan merusak sejumlah besar modul CPAN di Perl 7 dan memerlukan perubahan pada setiap modul, yang tidak realistis untuk diterapkan dalam tahun target, terutama karena tidak semua penulis tetap tersedia. Perubahan pada Perl 7 juga akan mencegah penggunaan modul yang dirancang untuk mendukung lebih dari sekedar versi terbaru Perl.

Selain itu, kemungkinan masalah berikut juga disebutkan:

  • Kebingungan di kalangan pemula karena beberapa contoh dan rekomendasi dari manual yang ditulis untuk Perl 7 tidak berfungsi di Perl 5.
  • Dampaknya terhadap pengembangan one-liners belum diteliti. Perl secara aktif digunakan tidak hanya untuk menulis skrip besar, tetapi juga untuk membuat skrip satu baris dan pendek untuk kebutuhan administrator, di mana penggunaan mode ketat tidak diperlukan.
  • Distribusi memiliki masalah dengan mengirimkan file yang dapat dieksekusi secara bersamaan untuk menjalankan skrip Perl 7 dan Perl 5 (ceritanya diharapkan terulang dengan Python 2 dan 3).
  • Kode yang ditulis untuk Perl 7 tidak harus secara spesifik mencatat bahwa kode tersebut tidak akan berjalan di Perl 5; banyak pengembang tidak akan menentukan versi minimum yang didukung.
  • Berbagai utilitas dan modul berdasarkan Perl 5 akan memerlukan koreksi.
  • Persiapan Perl 7, karena realokasi sumber daya, akan menghentikan pengembangan fitur Perl baru untuk beberapa waktu.
  • Ada risiko kelelahan dan kepergian pengembang aktif penerjemah Perl, modul, alat, dan paket yang menyertainya karena beban kerja tambahan yang besar tanpa motivasi yang tepat (tidak semua orang setuju dengan kebutuhan untuk membuat Perl 7).
  • Budaya masyarakat dan sikap terhadap stabilitas Perl akan berubah secara mendasar.
  • Otoritas bahasa akan dirusak karena kritik bahwa Perl 7 tidak sesuai dengan kode yang ada karena tidak adanya sesuatu yang baru secara fundamental.

Untuk memuluskan konsekuensi negatifnya, Dan Book mengusulkan rencananya, yang akan menghindari kesenjangan kompatibilitas. Diusulkan untuk mempertahankan proses pengembangan yang sama dan alih-alih 5.34.0, tetapkan nomor rilis berikutnya 7.0.0, di mana kami akan menonaktifkan dukungan untuk notasi pemanggilan objek tidak langsung dan mengaktifkan beberapa fitur baru seperti coba/tangkap. Perubahan seperti β€œuse strict” dan β€œuse warnings” diusulkan untuk diatur dengan secara eksplisit menentukan versi Perl dalam kode melalui pragma β€œuse v7” (strict sudah diaktifkan secara default untuk β€œuse v5.12” dan rilis yang lebih baru ).

Secara default, penerjemah disarankan untuk mempertahankan serangkaian parameter yang tidak berbeda dari Perl 5, dengan pengecualian proses standar untuk membersihkan sintaksis usang yang telah digunakan sebelumnya. Dukungan untuk fitur lama dan sintaksis yang tidak digunakan lagi dapat terus dihentikan sesuai dengan aturan penghentian yang ada. Diusulkan untuk memberi sinyal penggunaan elemen Perl 7 baru dalam kode dan untuk memisahkan gaya baru dan lama menggunakan pragma β€œgunakan v7”.

Sumber: opennet.ru

Tambah komentar