1. Perl
  2. 読み物

Perl6がリリースされてもPerl5は衰退していかないということを伝えたい

2021年における状況については、以下の記事をお読みください。

Perl6について皆さんはどんな考えを持っていますか?

「もうすぐPerl6がリリースされる」「Perl5はだんだんと衰退していってをPerl6に移行してゆく」「Perl5の次世代で機能が豊富でPerl5の悪い部分は取り除かれて使いやすくなっている」「Perl5のような汚いコードではなくてきれいなコードが書ける」

もしこのような考えを持っているとしたらこれは大きな誤解です。当初の理念としてはこれが正しいのかも知れませんが、Perl6の現在おかれている状況はこれとはまったく異なります。

Perl5の現在

Perl5はPerl4の純粋な後継でほぼ互換性があります。普通に書かれたPerl4のコードについてはわずかな修正を加えるだけでPerl5で実行することができます。

よく言われるPerlの汚いコードというのは「Perl4で書かれたコード」のことです。Perl5ではソースコードをきれいに書くことができます。きれいに書くためのノウハウもかなり蓄積されてきました。またPerlはスコープの実装がとてもよいのでレキシカル変数のスコープをできるだけ小さくするような保守性の高いコードを書くことができます。

Perlの悪いうわさをする人の多くはPerlについてあまり知らない人です。「Perlは便利だから役にたつよ」といってもなかなか心には響かないようです。実際にやってみてPerlはこんなになんでもできて便利だなぁと実感できます。

インターネットで調べものをするほどプログラムが好きな人は現在のPerlの書き方を知っているのですが、いざ実際のプログラマやSWの現場はというと、良い書き方がほとんど認知されていません。ぜひとも良い書き方が広まって少しでも作業が楽になればと思います。

Perl4からPerl5への一番の変更点はモジュールという仕組みを使用して機能を拡張できるようになったことです。Perl5は拡張性がとても高いです。他の言語と同じように便利なモジュールを作成したりすることはもちろん、言語の実装に近い部分までPerlで記述することができます。Perl6の大きな利点のひとつはオブジェクト指向をシンプルに記述することができることだったのですが、Perl5でさまざまな試みがなされた結果、Perl5でオブジェクト指向をとてもシンプルに書くことができることがわかってきました。

個人的にPerlの中で好きなことは積極的にテストを書く文化があるということです。(テストというのはもちろん自動試験のことです。)なんのために書くのでしょうか?それは他の人を自分のモジュールのバグで困らせたくはないからです。

Perl5の将来

Perl5は高速で安定した処理系であり拡張性も非常に高いです。使用する側から見れば言語としては高い完成度を誇ります。ですので言語として一線を退くことはありませんし、開発チームとしてもPerl5の開発やサポートをやめることはありえません。定期的にバージョンアップされるでしょうし、便利なモジュールはコアモジュールに追加されていくでしょう。

「Perl5はだんだんと衰退していってをPerl6に移行してゆく」というのは誤解です。わたしはPerlの入門記事を書いていますが、Perl6がリリースされるというアナウンスは2000年に行われたので、このサイトを書き始めたころは「Perl6にもうすぐ移行するのだったらこのサイトは無駄になるかもなぁ」と思っていた時期がありました。ですが最近はそれは誤解だということがわかったので安心して記事を書いてます。一番伝えないといけないことはPerl6という名前から来る誤解を解くことです。

牧さんが代表として運営するJapan Perl AssociationでもPerl5に対する期待は高いままです。

Perl5 and Perl6

Perl6がPerl1~5までの哲学や思想を受け継いだものであることは間違いありませんし、Perl"6"という名前も今後変更する予定はないということですが、かといってPerl6はPerl5が突然Perl5に取って代わる事はありえません。

Perl5自体は現在開発者の若返りが多少起こりつつありますが、Perl6や他のLL言語からどんどん良いところを盗みつつ、独自の開発がどんどん進んでいっています。Perl5の現在の利用状況もこちらのブログで「絶好調であり、これまでよりもいっそう活発になっている」との報告もあります。

Perl6が出たらPerl5はお払い箱になる、という考えだったひとはひとまずそれを忘れて、Perl5シリーズを再評価してみるのもいいかもしれません。

またtokuhiromさんもそれを受けて

Perl5 and Perl6

まあ、なんだかんだで、Perl5 に対する投資が Perl6 があるというおかげで阻害されてきた部分はあるので、よい傾向じゃないかとおもいます。

俺は、昨年だかの YAPC の後の飲み会で Larry が「Perl6 はリリースできてもできなくてもどっちでもええんや」といってたのを聞いてたので、その時点で諦めてたけどね!

これを期に、Perl5 の開発がもっともりあがるといいなーとおもいます。Perl5 の迷宮にどんどん挑みましょう。

といっています。

PerlのコミュニティではPerl5がなくなってゆくということは誰も望んでいません。「Perl5はだんだんと衰退していく」という誤解は取り除いてしまいましょう。

Perl6の現在と将来

。現在はPerl6を実行できるようにすることを目標に開発が続けられているようです。

石垣さんのPerl6の歴史と現在の状況について書かれた記事がとてもわかりやすいです。

モダンPerlの世界へようこそ 第14回 Rakudo:実装する方法だってひとつではないのです

YAPC2009 Asiaの弾さんのPerl6に関する講演では実験的な機能がたくさん紹介されていました。Perl6はPerl5との互換性を考慮しないでよいため豊富な記述を実装することができるようです。個人的な感想としてはさらなる言語の実験場所という感じを受けました。

Perl6に対する期待は人それぞれです。弾さんのように心待ちにしている人もいます。

この記事で伝えたいのは「Per5はなくならないよ」「Perl5は高速で安定していて拡張性に富む優れた処理系だよ」ということです。「Perl6がどうせでるのだから・・」と誤解していた人はこの機会に勉強してみてはどうでしょうか。

関連情報