3 ポイント 投稿者 kunggom 2020-06-25 | 3件のコメント | WhatsAppで共有

Perl がバージョン 7 について発表しました。(英語)Perl 7 は来年(2021年)に登場する予定です。

Perl はラリー・ウォール(Larry Wall)が 1987 年に初めて発表した、動的型付けの高水準インタプリタ言語です。移植性や下位互換性に優れ、文字列処理能力が高いため、各種スクリプトの作成や、言語学・バイオインフォマティクスなどでも使われています。2000 年代初頭までは Web プログラミングにも多く使われていました。当時は CGI(Common Gateway Interface)という用語が、あたかも Apache HTTP サーバーと Perl 言語の組み合わせを指すかのように誤って使われることもあったのを思い出します。ほとんどの Linux システムおよび macOS には Perl が標準でインストールされているため、すぐに利用できます。いま確認してみると、私の MacBook の macOS 10.15 には Perl v5.18.4 が、Raspberry Pi 4 で動く Ubuntu 20.04 には Perl v5.30.0 がインストールされています。

Perl 6 は、下位互換性を捨て、歴史的経緯で積み重なっていた不合理な点をすべて取り除くことを目標に、Perl 5.6 が発表された 2000 年から設計が始まっていましたが、非常に長いあいだリリースが遅れた末、結局 2019 年に Raku という別個の言語として完全に分離されました。そのため、Perl は 6 というバージョンを飛ばして、そのままバージョン 7 へ進みます。また Perl 7 は、基本的には現在の最新安定版である 5.32 と大きくは変わらない一方で、よりモダンで安全なデフォルト設定を採用するとのことです。もしこの設定によって互換性の問題が発生する場合は、Perl 5 の設定値を使う互換モードを利用できるそうです。これは、これまで問題なく使われてきた Perl スクリプトや、CPAN(Comprehensive Perl Archive Network)にある膨大な既存コードを、最小限の修正だけで Perl 7 でも引き続き利用できることを意味します。

3件のコメント

 
yongbin 2020-06-26

まとめありがとうございます。私の知っていることと少し異なる部分があるのでコメントします。

  1. perl6 の設計目標は、perl5 から不合理な点を取り除くことではありませんでした。perl6 は perl5 の基本精神の上に、より現代的なプログラミングパラダイムとランタイム構造を言語コアに基本的に反映する形を志向していたため、perl6 が perl5 を置き換えることを目標にしていたわけではありません。したがって、python 3 と python 2 の関係というよりは、C と C++ の関係として見るべきです。

  2. perl6 はリリースが遅れたために raku に改名したわけではありません。perl6 は 2015 年のクリスマスに正式リリースされており、複数の VM とランタイムが存在します。2019 年に名前を変更したのは、上で述べたように perl5 と perl6 の独立した関係をより強調するための選択でした。

ありがとうございます。

 
kunggom 2020-06-26

そうですね。コメントありがとうございます。

 
yongbin 2020-06-26

投稿ありがとうございます!