Perlの歴史についてどこよりも分かりやすく解説
目次
Perl(パール)の概要
今回はプログラミング言語の一つPerl(パール)の歴史について見ていきたいと思います。
が、「そもそもPerl(パール)って、どんなプログラミング言語なの?」という方もいらっしゃるかと思いますので、Perl(パール)の歴史の前に、Perl(パール)というプログラミング言語のことを知ってもらえるよう、プログラミング言語としての概要を簡単にご紹介いたします。
プログラミング言語を分類ごとに整理したときの特性を強調して、〇〇言語(〇〇に特性が入る)と表現することがありますが、Perl(パール)は“汎用スクリプト言語”と表現することが多いです。
汎用の意味は普遍性があるだとか、広く使えるという意味であることはみなさんご存知かと思いますが、“スクリプト言語”という言葉は非ITエンジニアの方にとっては「なんだそれ」だと思います。
“スクリプト言語”とは「ソースコードの記述が比較的簡単なプログラミング言語」のことを指しますが、Perl(パール)の場合はコンパイル(書いたソースコードを機械語に翻訳する作業)が不要でソースコードを書くとすぐに利用できる、という点が特に重要なポイントです。
テクフリでフリーランス案件を探してみるPerl(パール)プログラミング言語としての特性
もう少し現場的なPerl(パール)のプログラミング言語としての特性についても見ておきましょう。
Web系の方だと、言語をサーバ上で動くプログラミング言語のことを“サーバーサイドの言語”、Webブラウザ上で動くプログラミング言語のことを“フロントエンドの言語”と表現することが多いですが、この分類だと、Perl(パール)はサーバーサイドの言語になります。
「この商品をカートに入れる」をクリックすると「カートに追加されました」とポップアップが出るような“動きのあるWebページ”のことを動的ページと呼びますが、あるタイプの動的ページの実現方法の一つとしてCGI(Common Gateway Interface)と呼ばれる仕組みがあります。
このCGIは、どのように表示するかの処理をサーバ側で行ったうえで、処理結果をサーバからWebブラウザに転送して、表示してもらうというものです。
そして、サーバ上で動く。どのように表示するかの処理を行うプログラムにPerl(パール)が使われている、という構図になります。
ですので、ベテランプログラマーを中心にPerl(パール)案件といえばCGIのイメージを持っている方も多いと感じます。
Perl(パール)の歴史《黎明期》
Perl(パール)のことがなんとなくわかったところで、Perl(パール)の歴史を紐解いていきましょう。
Perl(パール)が誕生したのは1987年で、開発者は「怠惰(Laziness)」「短気(Impatience)」「傲慢(Hubris)」をプログラマーの三大美徳と提唱したことで有名なラリー・ウォールです。
Perl(パール)開発当時は、いまほどプログラミング言語の種類も多くなく、ちょっとしたサーバ上のテキスト処理をするにしても、コンパイルが必要なC言語か、あるいはUNIXコマンドをプログラミング言語のように扱うシェルでプログラミングを作成する、というのが一般的でした。
ですが、コンパイル言語はコンパイルの手間がかかりますし、シェルはドキュメント処理なども一応は可能でしたが、中身としてはいわゆるUNIXコマンドです。
そもそも論として、テキスト処理のために作られたものではなく、処理は早くないし、複雑な処理に対応するのは大変、という問題がありました。
そこで、コンパイルが不要でテキスト処理に強い言語として編み出されたのが、Perl(パール)となります。
ドキュメントが充実した言語、Perl(パール)
Perl(パール)が広く世間に知られるようになったのは、時代のニーズに適合したプログラム言語であると同時にドキュメントの充実にも触れておくべきでしょう。
Perl(パール)が世間に公開されたのは開発から4年後の1991年ですが、この年、表紙にラクダのイラストがあることから“ラクダ本”という通称で知られる、オライリーメディア社の『プログラミングPerl』が発売されています。
なお、『プログラミングPerl』の執筆者には、Perl(パール)開発者のラリー・ウォール自身も参加しています。
ちなみに、現在もラリー・ウォールはPerl(パール)プロジェクトのBDFL(Benevolent Dictator For Life、優しい終身の独裁者。内部で対立があった際、最終的な決定権を持つ人物に対する称号)として、重要な役割を担っています。
Perl(パール)の歴史《成長期》
黎明期で触れたように、時代のニーズにあったプログラム言語として人気を集めたPerl(パール)ですが、よりPerl(パール)がメジャーな言語になったのは、言語の概要でも紹介した通り、CGIにPerl(パール)を使うのがスタンダードになったことが挙げられます。
そもそも、なぜPerl(パール)でCGIを使うのがスタンダードになったかというと、スクリプト言語で取り扱いが容易である、という点、CGIで動的ページを作るというのは、結局のところHTMLの生成、つまりテキスト処理であった、という点、そして、OSのサポート状態です。
今でもサーバ用OSといえばRed HatのようなLinux系OSが多いですが、90年代というのはWindowsがやっと登場したばかりで、サーバ用OSといえば、UNIXやLinuxが当たり前という時代でしたが、すでにその頃にはUNIXやLinuxには標準でPerl(パール)がインストールされていました。
わざわざPerl(パール)以外のプログラミング言語を利用しようと思う人も少なかったため、Perl(パール)でCGIを書くのが当たり前になったわけです。
Perl(パール)の弱点
こうして、一時代を築いたPerl(パール)ですが、やはり完ぺきな言語ではなく、いくつか欠点があり、その欠点に対応できる新たなプログラミング言語の誕生・発展も発生しています。
例えば、「やり方は一つではない」という有名なPerl(パール)のモットーは、機能Aを持ったプログラムのソースコードの書き方はいくつもあることを意味しています。
人によって書き方が違うと、あとあと確認するのが面倒ですし、デバックの際、解析するのも大変です。
生産性・保守性という意味ではデメリットでしかありません。
結果、「やり方はいつも同じ」になることを目指したPythonが注目され、人気を集めるようになったのです。
あるいは、Perl(パール)はオブジェクト指向言語でもあるものの、オブジェクト指向に対応するようになったのは1994年のバージョン5.0からと、いわば後付けであり、一部のプログラマーから、オブジェクト指向により最適なプログラミング言語を求める声も出てきました。
その声を具体化したのが日本発の国際プログラミング言語である、Rubyです。
RubyはPerl・Pythonと異なり、最初からオブジェクト指向言語として設計されたプログラミング言語です。
そして、CGIというやり方自体、どうだろうか、という考え方も出てきました。
CGIにおいてPerl(パール)で書かれた実行ソースコードはHTML本体に書かれているのではありません。
処理の度に、いちいち呼び出し処理が必要になります。
その手間をなくすために、最初からHTML内に記載するタイプの、より動的ページ作成に向いたプログラム言語があると良いのでは?というアイデアから生まれたのがPHPです。
Perl(パール)の歴史《現在》
Perl(パール)の欠点を解消するための新たなプログラム言語が登場し、それらが活躍していることはすでに触れた通りです。
では、それらに取って代わられてPerl(パール)は衰退・消滅している流れかというと、そういうわけではありません。
現在も開発が進められていますし、Perl(パール)には新しい言語より歴史が長い分、ドキュメントの充実、ノウハウの蓄積がある、という強みがあります。
すでにPerl(パール)で書かれたシステムを保有している企業においては、それらとの親和性を考えて、新規システムにおいてもPerl(パール)を選択するというのは普通のことです。
今後もライバル言語と比較検討されながら、使われ続けると思われます。
まとめ:様々なプログラミング言語が互いに影響を与えながら進化
今回はPerl(パール)の歴史を見ていきました。
Perl(パール)の歴史を知ることで、他のサーバーサイド言語との関係、それぞれの特徴も見えてきたかと思います。
このように、それぞれのプログラミング言語は、互いに影響を与えながら進化しているのです。
歴史を知ることで、プログラミング言語の特性がわかり、システム開発の際、どの言語を選択するべきかの判断材料にもなるので、知識として持っておくことをおススメします。
テクフリでフリーランス案件を探してみる3つの質問に答えるだけで、フリーランスエンジニアとしての単価相場を算出します。 スキルやご経験にマッチする案件もあわせてご紹介いたしますので、気軽にご活用ください! ※単価相場の算出に個人情報の回答は必要ございません。