Perlの概要と歴史
Perlとは
プログラミング言語「Perl」は, 1987年にLarry Wallが開発したプログラミング言語です. Ruby, Python, PHPと並ぶ, いわゆるLL言語(Lightweight Language)と呼ばれるプログラミング言語の1つで, 後に登場するRubyやPHPに影響を与えました.
Perlの世界において, 最初の"P"が大文字の「Perl」言語そのものを, 最初の"p"が小文字の「perl」はその処理系を示します.
Perlの特長
TMTOWTDI
Perlには, 「TMTOWTDI」というスローガンがあります. 「ティムトゥーディー」と読み, 「There's more than one way to do it.」の略です. Perlを開発したLarry Wallは, 「プログラミング言語は, さまざまな対象をシンプルに記述できるようにするために, ある程度複雑でなければならない」と考えており, それが現れているのが「やり方はいろいろある」という, 「TMTOWTDI」という思想です.
後方互換性
Perlのバージョンアップによって, 以前のバージョンのPerlで動作するコードが動かなくなるということは, ほとんどありません. もちろん, Perlもバージョンアップによって機能の追加や削除が行われますが, 基本的な構文については, 後方互換性が相当繊細に維持されています.
また, 新しく追加された機能のうち, 将来的に機能が変更されたり, 削除される可能性があるものについては, 実験的(Experimental)と指定され, 実験的機能を有効にする構文を利用しない限り使うことができないようになっています. 実験的な機能を避けることで, Perlのバージョンアップによって過去のコードが動かなくなるという可能性を, 更に低減できます.
豊富なモジュール
汎用性の高い複数のプログラムをまとめたものを「ライブラリ」と呼びます. Perlにおいては, 「モジュール」と呼ばれるライブラリの仕組みが提供されていて, CPANというアーカイブにおいて, 全世界のPerlエンジニアが開発したモジュールが共有されています.
- Encode ... 文字列のエンコード/デコードを処理するモジュール
- Net::Twitter / Net::Twitter::Lite ... TwitterのAPI(Application Programming Interface)を操作するモジュール
- DBI ... Perlから, 様々なデータベース(MySQLやPostgresSQL, SQLiteなど)を操作するためのモジュール
なお, CPANで公開されているモジュールを検索するときは, MetaCPANというウェブサイトを利用すると便利です: https://metacpan.org/
Perlの歴史
2018年1月20日現在, Perlの最新のバージョンは5.26.1
です. このように, バージョンの最初が5.
で始まるPerlは「Perl 5」と呼ばれており, それ以前, すなわち「Perl 4」以前については, もはやそれを利用した環境はほぼ存在しないと考えて良いでしょう.
「Perl 5」は1994年に登場し, そこからインターネットやウェブといったものが一般に普及してきた2000年に, 5.6.0
がリリースされました.
2002年, 国際化対応や今に繋がる機能が実装された5.8.0
」がリリースされます. 次のバージョンである5.10.0
がリリースされるまで, かなり時間がかかったため, 多くの企業で長くに渡って作られました.
5.10.0
は2007年に公開され, 後方互換性を損なわない範囲で構文の拡張などが行われました. 2010年に公開された5.12.0
から, 毎年1回バージョンアップが行われるようになり, 2018年現在の最新版が, 前述の5.26.1
です.
「Perl 5」においては, バージョンを5.xx.yy
で示すことになっており, xx
が偶数のものが安定版, 奇数のものが開発版となっています. そのため, よほどこだわりがない場合は, xx
が偶数である安定版を利用するのがおすすめです.
なお, 最新の安定版とその1つ前の最新版がサポートの対象であり, バグやセキュリティ上の問題が判明した場合, yy
の部分の数値が1増えたバージョンが, 安定版として新たにリリースされます.
余談: 「Perl 6」について
現在, 「Perl 5」だけでなく「Perl 6」の開発も行われています. 「Perl 6」は, 当初は「Perl 5」の後継となるべく開発されたものの, 後に「Perl 5」とは別の言語として, それぞれ独自に開発を進めていくことが公式に発表されました. そのため現在も「Perl 5」の開発が継続されています.
実際に, perl
コマンドを利用して, Perlのバージョンを表示してみると, 「Perl 5の, バージョン26の, サブバージョン1」といったように表示されています:
This is perl 5, version 26, subversion 1 (v5.26.1)
Perlのコミュニティ
Perlを嗜むエンジニアのことを「Perl Monger(パールモンガー)」と呼びます. そして世界各地にPerl Mongerが集まるコミュニティが存在します. 一般に, 各地域のPerl Mongerのコミュニティは, 「(地域名).pm」と名乗ることが多いです. 実際に, 日本にも幾つかのPerlコミュニティが存在します.
- 関東圏: Shibuya.pm, Gotanda.pm, 吉祥寺.pmなど
- 関西圏: Kansai.pmなど
- 北海道: Hokkaido.pmなど
- 福岡: Fukuoka.pmなど
- 沖縄: Okinawa.pmなど
また年に数回, これらのコミュニティと日本におけるPerlの普及団体, Japan Perl Associationが協力して, 「YAPC::Japan」というカンファレンスが開催されています. Perlに限らず, その周辺技術を含めた様々なジャンルの発表が行われ, 日本各地からPerl Mongerが集まります. 興味があれば, 是非公式サイトを確認の上, 参加してみてください: http://yapcjapan.org/