Perl 7 mengumumkan

Pada konferensi virtual pengembang bahasa Perl hari ini diumumkan sebuah proyek Perl 7 yang akan melanjutkan pengembangan cabang Perl 5 dengan lancar tanpa membuat perubahan radikal. Perl 7 akan rilis serupa perl 5.32.0, kecuali untuk pengaturan default lainnya yang lebih konsisten dengan praktik pembangunan modern. Jika tidak, Perl 7 akan tetap sama dengan Perl 5 dan akan tetap kompatibel dengan aplikasi yang dikembangkan sebelumnya.

Perubahan signifikan pada nomor versi akan bertindak sebagai semacam pemisah untuk transisi ke model baru guna meningkatkan fungsionalitas bahasa Perl tanpa pelanggaran nyata terhadap kompatibilitas ke belakang.
Peluncuran Perl 7 diharapkan dapat membantu menarik pengembang baru ke Perl dan membantu menyederhanakan proses penambahan fitur-fitur baru yang signifikan ke dalam bahasa tersebut sambil menjaga kompatibilitas dengan basis kode proyek yang ada. Nomor 7 dipilih karena Perl 6 digunakan untuk mengembangkan bahasa yang ada sekarang sedang berkembang dengan nama terpisah Raku. Rilis pertama Perl 7 diharapkan tahun depan. Cabang Perl 5.32 akan menjadi yang terakhir dalam seri Perl 5 dan direncanakan akan didukung selama 5 hingga 10 tahun.

Perubahan paling menonjol di Perl 7 adalah dimasukkannya "ketat“, yang berarti pemeriksaan ketat terhadap deklarasi variabel, penggunaan penunjuk simbolik, dan penetapan subrutin. Menggunakan "use strict" adalah cara yang baik dan digunakan oleh sebagian besar pengembang. Demikian pula, secara default mereka berencana untuk mengaktifkan pemrosesan peringatan (“gunakan peringatan").

Perl 7 juga berharap untuk menstabilkan dan mengaktifkan secara default beberapa fitur eksperimental yang sudah ada, seperti tanda tangan fungsi (“gunakan fitur 'tanda tangan'”), yang memungkinkan, saat mendefinisikan suatu fungsi, untuk menentukan argumen yang masuk dan mengotomatiskan pemeriksaan nomornya (Anda dapat menulis “sub foo ($left, $right) {” alih-alih “sub foo { saya($kiri, $kanan) ) = @_;"). Mereka berencana untuk menyertakan dukungan default untuk operator “isa” untuk memeriksa apakah suatu objek merupakan turunan dari kelas tertentu atau kelas turunan darinya (“if( $obj isa Package::Name)”, serta dereferensi postfix operasi (postderef) “$ sref->$*" sebagai ganti "${ $sref }", "$aref->@*" sebagai ganti "@{ $aref }" dan "$href->%{ ... }" bukannya "%$href{ ... } "

Pesaing untuk dinonaktifkan secara default di Perl 7 adalah:

  • Notasi pemanggilan objek tidak langsung ("tidak ada fitur qw (tidak langsung)") adalah cara lama untuk memanggil objek, menggunakan spasi sebagai pengganti "->" ("metode $objek @param" alih-alih "$objek->$metode(@param)"). Misalnya, alih-alih “my $cgi = new CGI” Anda akan selalu menggunakan “my $cgi = CGI->new”.
  • Deskriptor file kosong tanpa deklarasi variabel ("tanpa kata dasar::filehandle") - menggunakan konstruksi seperti “open FH, $file” akan menyebabkan kesalahan, Anda perlu menggunakan “open my $fh, $file”. Perubahan tidak akan mempengaruhi deskriptor file standar STDIN, STDOUT, STDERR, ARGV, ARGVOUT dan DATA.
  • Array dan hash multidimensi tiruan gaya Perl 4 ("tidak ada multidimensi").
    Misalnya, menentukan “$hash{1, 2}” akan menyebabkan kesalahan; Anda perlu menggunakan array perantara, misalnya “$hash{join($;, 1, 2)}”.

  • Mendeklarasikan prototipe dalam gaya Perl 4 (Anda perlu menggunakan "use :prototype()").

Dalam rencana yang lebih jauh, mereka berharap untuk mengaktifkan dukungan Unicode secara default, yang akan menyelamatkan pengembang dari menentukan “gunakan utf8” dalam kode. Untuk modul dan skrip yang memiliki masalah dengan pengaturan default baru, dimungkinkan untuk kembali ke perilaku Perl 5 dengan menambahkan baris "use compat::perl5" ke kode. Pengaturan individual juga akan disimpan dan dapat diubah satu per satu.

Sumber: opennet.ru

Tambah komentar