Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl

Perlは、言語コア、標準モジュール、CPANモジュールすべてで互換性が高い

Perlのきわめて高い安定性は、標準モジュールや、第三者が作成しているCPANモジュールにも寄与しています。

Perl言語コアの後方互換性

Perl言語コアの後方互換性はきわめて高く、後方互換性が崩される変更がされることは、めったなことではありません。Perl言語は、方針として、互換性を維持しながら、発展していくことが、予定されています。

このため、仕事で利用するスクリプトなど、長期間の安定性が求められる場所においては、Perlは、非常に適したスクリプト言語になっています。

現実の現場では、すべての部分で自動試験が記述できるわけではないので、言語をアップグレードするときに、互換性が保たれていることは、大きな利益になります。

Rubyの思想は、互換性を崩すことによって、言語がどんどんよくなっていくので、将来の利益に寄与するという考え方を持っています。一方Perlは、たくさんの場所で利用されているプログラムの互換性を崩すと、大きな影響が及ぶので、互換性を維持しようと考える言語です。

Pythonは、言語のマイナーなバージョンアップにおいては互換性を維持しよう、メジャーバージョンアップのときには、互換性を壊すことを許してほしいというPerlとRubyの中間の思想を持った言語のように思います。

Perl6は、現在では、Perlの姉妹言語という位置づけであり、Perlの後継ではなくなりました。Perl6はPerlによく似た別の言語という位置づけが、PerlのコミュニティとPerl6のコミュニティの間でなされています。この点はPerlにおいては、Python3とPython2の関係とは異なっています。

Perl標準モジュールの後方互換性

Perlの標準モジュールの後方互換性は非常に高いです。標準モジュールにおいて、後方互換性が崩されたというのは、聞いたことがないくらいです。

ですので、非常に安定しており、安心して利用できます。

あるモジュールが標準モジュールからなくなるということは、ときどき起こりえます。時代の偏移において、Perlコアチームの民主的な決定において、標準モジュールとして、管理する必要はないと判断されるモジュールがあります。

けれども、これは後方互換性が崩れるということではなくって、そのモジュールは、CPANから引き続き利用することができるということです。

もし、そのモジュールを使うのであれば、CPANからインストールする手間を、少しだけ負担してねということです。APIが変更されることは、めったなことでは起こりえないでしょう。

CPANモジュールの後方互換性

PerlにはCPANという第三者が作成したモジュールを自由に利用できる仕組みがあります。CPANモジュールはだれでも作成できるので、そのモジュールに関する後方互換性の方針に責任を持つのは、モジュールの作者です。

けれども、後方互換性をどんどん壊していくという方針をとるCPAN作者は、あまりいないように感じます。最初の実験的なリリースのときには、後方互換性は保障しないけれど、本リリースされたら、大きな理由が無い限りは、APIの変更をしない作者が、ほとんどです。

CPANモジュールの後方互換性は、全体的に見て安定しています。Perl 5.8あるいはPerl 5.10以上であれば、利用できるモジュールがほとんどです。

Perl言語コア、標準モジュール、CPANモジュールというPerlエコシステム全体が、非常に高い安定性を持っているというのが、Perlという言語のひとつの特徴になっています。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。