今回はある種のプログラミング言語の人気投票である「GitHubPullRequest」にて2019年1月から3月の統計にて第16位にエントリーされたPerlについてご紹介いたします。
Perlは1987年に誕生し、1991年に公開されたプログラミング言語です。
現在も主要プログラミング言語として比較的使われるプログラミング言語の中では比較的歴史が長い言語です。
過去記事の「プログラミング言語の歴史 <Perl編>」に詳しいですが、C言語やシェルなどしかなかった時代に、比較的、簡単に記述・実行できる“スクリプト言語”を目指し、開発されました。
スクリプト言語の定義はあいまいですが、C言語より記述の自由度が高く、そして、C言語と異なり、実行前にコンパイル(ソースコードをコンピューターに理解できる機械語に変換すること)が不要という点は、Perlが登場した当時、非常に画期的でした。
Perlの案件を探すPerlは一気に主要プログラミング言語の一つとなると同時に、Perlの問題点・不満点の解消を目指した、新たなプログラミング言語がいくつか生まれました。
なお、こうした経緯で誕生したPHP、Python、Rubyといった言語は、Perlの影響を受けながら誕生・成長してきたため、Perlも含めて「P系プログラミング言語」と呼ぶ人もいます。
話はPerlに戻すと、確かにPerlは「汎用スクリプト言語」という呼ばれ方がされますが、現在、実際の主な使われ方は、CGI(Common Gateway Interface)の実装です。
CGIとは動きのあるWebページの実装方法の一つです。
簡単に言うと、利用者側のWebブラウザーの要求に応じて、サーバー側で外部プログラムを呼び出し、実行結果をWebブラウザー側に送ることで、動きのある表現を実現する方法です。
例えば、ショッピングサイトで買い物中に「買い物かご」の中身を確認したいと思い、買い物かごボタンをクリックしたとしましょう。
まず、Webブラウザーから、インターネット経由で「買い物かごの中身を見せて」という要求がサーバーに対して発信されます。
その要求を受け取ったサーバーは、「ユーザーごとの買い物かご情報を教えてくれるプログラム」を呼び出し、買い物かご情報を取得し、Webブラウザーに対して「情報だよ」と送信します。
そして、その情報を受け取ったWebブラウザーが、「買い物かご情報」を表示するという仕組みになっています。
ちなみに、Web業界では、プログラミング言語のうちWebブラウザー側(クライアント側)で実行されるものをフロントエンド言語、サーバー側で実行されるものをバックエンド言語と分類することが多いです。
その分類に従えばPerlはバックエンド言語となります。
もう一つ補足しておくと、Perlには、Perl5(いわゆる、普通のPerl)とPerl6の二系統あります。
番号が示す通り、もともとはPerl5の次期バージョンとして整備されたPerl6でしたが、Perl5よりも、より自由度の高い記述など、革新的なプログラミング言語となるように実装を進めていった結果、これまでのPerlとの互換性がまるでなくなってしまいました。
結果、Perlの新バージョンではなく、Perl6という新たなプログラミング言語、という扱いを受けています。
Perl6は日本ではまず使われることはありません。
世界的にもGitHubPullRequestのランキングで40位以下と非常に利用率が低いため、Perl6は“失敗したプログラミング言語”と揶揄されがちです。
Perl6の学習をしても、あまり年収アップや転職市場での優位性に繋がらないので、普通のPerlと間違って教本を買ったりしないようにしましょう。
Perlは2019年1月から3月の統計では第16位でしたが、2018年1月から3月では18位と実は順位を上げています。
順位が上がった原因としては、Perlの利用率が上がったというよりは、近い順位だった他の言語、例えばSwiftやObjective-Cなどの利用率が下がってしまったことが大きいように思います。
もともとiOSアプリ開発の現場で使われてきたSwiftやObjective-Cは、昨今のiPhoneの販売不振などが原因で、じわじわと利用率を低下させていると言われています。
逆に言えば、Perlは古い世代の言語でありながら、利用率が安定しています。
Webサイト、Webシステムは絶対になくならないでしょうし、Perlは他の後発言語よりも歴史が長い分、資産やナレッジが多いというメリットもあります。
それらPerlの蓄積を利用したい場合、敢えて、PythonやPHPなどの世代の若いプログラミング言語を使わずに、Perlを積極的に選択することも多々あります。
また、保守運用においても、もともとPerlで書かれているWebシステムの修正・バージョンアップの方法として、改めて新しい世代のプログラミング言語ですべて再作成する、全面更改するのもアリです。
しかし、全面更改するよりも、Perlを使って問題個所・更新箇所のみ手を加えていく方が、コストもリスクも低いでしょう。
そのようなニーズのおかげで、Perlは古い言語でありながら、順位も安定しているのでしょう。
すでにご説明した通り、Perlは歴史のあるプログラミング言語であり、今なお多くの現場で利用されています。
そのため、求人市場においても、価値のあるスキルになっています。
ただし、“パンチ力”に欠けるのは否めません。
たしかに、Perlはニーズが安定しているプログラミング言語ですが、やはり世代の古い言語ですので、敢えてPerlにこだわる理由がないのであれば、わざわざPerlにしない、というセオリーもあります。
そういう意味では、他の言語も十分な実績を積んで、Perlと同程度の過去の資産が蓄積されれば、急速にPerlの存在感は減少するでしょう。
実際、ここ数年、Webサイトのリニューアルに合わせて、PerlからPythonなどの世代の新しいプログラミング言語へと全面更改する案件の人材募集も散見されます。
単に「Perlが扱える」だけではダメで、「Perlは扱えるが、他のプログラミング言語にも対応できるようになりたい」という積極性・柔軟性が求められていると感じます。
すでにお伝えした通り、Perlは基本的にはWebシステム開発で使われるプログラミング言語です。
そのため活躍できる業種も、Webシステム開発を行っている、いわゆるWeb系IT企業が主になります。
もちろん、非IT企業が自社Webサイトを運営していることもありますので、そうした非IT企業からの求人も、ごくわずかですが、登場することもあります。
年収ですが、エンドサイドエンジニア(場合によってはサーバサイドエンジニア)として扱われ、その役職に応じた給与体系で支払われることが一般的です。
具体的な金額で言うと、正社員の場合年収300万円~700万円のレンジに収まることが多いです。
フリーランスの場合、月50万円から100万円が多く、平均はおおむね70万円代と、他のプログラミング言語と同程度か、注目度の高い世代の新しいものに比べて、やや低いくらいの年収となりそうです。
繰り返しになりますが、Perlは歴史のあるプログラミング言語であり、長い歴史があるからこその強みもあれば、弱みもあります。
現在のところ、Perlは主要言語としての地位を守っていますが、IT業界は移り変わりが激しく、実際、近年、どんどん新たなプログラミング言語が登場しています。
ある日突然、ピタッとPerl案件がなくなる、ということはないでしょうけれど、じわじわと減っていく可能性は十二分にあるので、Perlだけで勝負するとは考えずに、複数のプログラミング言語を身に着けることをお勧めします。
なお、他のプログラミング言語も、P系言語など、Web業界での利用頻度が高いプログラミング言語を戦略的に選択すると、転職市場で強い人材になれるでしょう。
フリーランス案件を探す3つの質問に答えるだけで、フリーランスエンジニアとしての単価相場を算出します。 スキルやご経験にマッチする案件もあわせてご紹介いたしますので、気軽にご活用ください! ※単価相場の算出に個人情報の回答は必要ございません。