Perlとは?
Perl(パール)とは「Practical Extraction and Report Language」の略で、「実用的な抽出とレポート言語」という意味があります。1987年にアメリカにて開発されたプログラミング言語で、約30年以上の歴史を持ち、プログラミング言語の中では息が長い方です。PerlはC言語やシェルスクリプトなど、他言語の良い部分を取り入れて作られました。また、これまでに何回かバージョンアップもされており、オブジェクト指向で書ける機能が追加されるなどしています。
Perlは特にWebアプリ開発で多く使われています。人気が下火になっていると言われることもありますが、Perlを使っている現場はまだまだ多くあり、これからPerlも学ぶのもおすすめです。
【参考】:The Perl Programming Language - www.perl.org
Perlでできること
ここでは、Perlでできることについてまとめました。これらのシステム開発に携わりたい方、Perlを習得したい方はぜひ参考にしてください。
Webアプリ開発
Perlがもっとも活躍するのはWebアプリ開発です。Webアプリとは動画配信サイトやECサイト、SNSなどネット上で動くアプリのことです。スマホの普及により、ネットを使う人が増えたため需要が高まっている開発分野です。
Webアプリ開発ではユーザーの要望に基づいてスピーディーに改良を行う必要があります。Perlはコンパイルが不要であり、ソースコードの修正をすぐに行えるためWebアプリ開発に向いています。
業務システムの開発
Perlは顧客管理システムや生産管理システムなどの業務システム開発にも多く使われてます。LinuxやWindowsなどOSを選ばず動作できるため、幅広い業務システムを開発することが可能です。
ただし、Perlはオブジェクト指向が得意ではない関係で、大規模な業務システムの開発では使われにくく、代わりにJavaが多く活用されています。小規模なシステムの開発であれば、Perlも候補に入ってきます。
ゲーム開発
ソーシャルゲームの開発にもPerlが使われることはあります。ゲームの会員情報登録機能やログイン機能など、サーバ側の開発を一通りPerlで行うことが可能です。ただし、家庭用ゲームやスマホゲームの開発には使われないことがほとんどです。
Perlのメリット
続いて、Perlのメリットについて解説します。他言語に比べてPerlはどういった点が優れているのか、詳しくみていきましょう。
互換性が高い
Perlは互換性が高いのがメリットです。プログラミング言語は、バージョンアップされると古いバージョンのコードが使えなくなり、コードを大幅に書き換えないといけない場合があります。しかし、Perlは互換性が高いため、コードをあまり書き換えなくても良くバージョン移行がスムーズです。
PythonなどはPython2とPython3で大きく文法が変わっており、大幅な修正が必要でしたが、Perlは今のところは大幅な修正が必要となるアップデートは起きていません。
学習コストが低い
Perlは学習コストが低めなのもメリットです。JavaやCなどに比べ文法が平易であり、かつCのポインタのように難しい概念がないため、初心者でもスムーズに学習できます。また、Perlは型を意識してコードを書く必要がないのも、初心者に優しい点と言えるでしょう。
コンパイルの必要がない
Perlはインタプリタ型言語であるため、コンパイルの必要がありません。インタプリタ型言語は、ソースコードを1行ずつ機械語に訳して実行する方式を取っています。コンパイルが必要ないため、実行結果をすぐに確認でき開発効率を上げることが可能です。
ノウハウが多い
Perlは30年以上もの歴史がある言語のため、ネット上に多くの情報があります。分からない点があれば調べて解決できる場合が多いです。ノウハウが多い点も入門者に優しいと言えるでしょう。
テキスト処理が得意
Perlはテキスト処理が得意なのもメリットです。Perlは他の言語よりも正規表現の機能が優れており、テキストを高速で処理することができます。また、文字列と数値を自動変換する機能も備わっています。
Perlのデメリット
続いて、Perlのデメリットについて解説します。プログラミング言語にはそれぞれに良い面・悪い面があります。双方の面を把握することで、はじめてPerlを使いこなせると言えるでしょう。
実行速度は速くない
Perlのデメリットの一つに、実行速度が速くないことが挙げられます。Perlはインタプリタ型言語でありソースを1行ずつ機械語に訳す方式のため、その分処理が遅くなってしまいます。対してCやC++などのコンパイル型言語は、ソースを1度に機械語に翻訳する方式のため処理速度が早いです。
Perlは処理速度がシビアに求められる場面では使いにくいです。たとえば、家電製品に組み込まれるシステムの開発などにはPerlはほとんど使われていません。
ただ、PerlはRubyなどと比べると速度は若干早めと言われています。また、Perlはさまざまな書き方ができる言語であり、ソースを改良すれば実行速度が改善される余地が残っていることも多くあります。
コードを統一しにくい
Perlはコードを統一しにくいのもデメリットです。Perlはさまざまな書き方ができるため、プログラマーによってソースに差が生まれやすいです。そのため、他人の書いたソースが読みにくいと感じることもあります。
ソースが読みにくいと既存システムの改良に時間がかかることもあります。そのためPerlを使う場合、チーム内の書き方が統一されるように記述ルールを決めておく、という現場も多いです。
優秀なフレームワークが少ない
Perlは優秀なフレームワークが少ないのも難点です。フレームワークとは、Webアプリに必要な機能があらかじめひとまとめになったもののことです。フレームワークを使うことで、開発効率を上げることが可能です。
たとえば、RubyにはRuby on Railsという優秀なフレームワークがあります。また、PHPやPythonにはさまざまな種類のフレームワークがあり、開発方法に応じて使い分けることが可能です。一方で、PerlにはMojoliciousやDancerなどのフレームワークがありますが、そこまで高い人気を誇っているわけではないのが現状です。
オブジェクト指向で書きにくい
Perlはオブジェクト指向で書きにくいのもデメリットです。もともとPerlにはオブジェクト指向がなく、後から追加されたため、Javaなどに比べそこまで厳密性が高いわけではありません。また、使いにくいという意見もあります。
オブジェクト指向で書くと、プログラムのメンテナンスがしやすくなるメリットがあります。ソースの一部分を変更しても他の箇所に影響を及ぼしにくいため、テストにかかる時間を減らすことが可能です。
AI開発であまり使われない
Perlはディープラーニングや機械学習で使われることが少なく、AI分野では主にPythonやRといった言語が使われます。PythonやRには機械学習や数値計算、グラフ作成などのライブラリが多くあり、AI開発を容易に行うことができます。
AI開発は昨今注目されている開発分野です。AIによって人間の生活が大きく変わるとも言われています。そのため、AI開発で使われる言語の方が将来性が高い傾向にあります。実際、PythonはTIOBEプログラミング言語ランキングでも1位を獲得しています。
【参考】:TIOBEプログラミング言語ランキング
Perlの将来性について
最後に、Perlの将来性について解説します。Perlは今後使われなくなるのでは、という意見もありますが、実際のところPerlの将来性は本当にないのかまとめました。
他の言語の人気が高まっている
Webアプリ開発分野では、昨今PHP・Python・Rubyなど他言語の人気が高まっています。特にPythonは人工知能開発にも使えることから高い評価を得ています。そのため、新アプリの開発はPerlではなくPythonで行う企業も増えており、Perlの新規開発案件は減っているのが現状です。
Perl自体は決して性能が劣る言語というわけではないですが、他に優秀な言語が多くあるため、下火になっているという見方もできます。
システムの運用・保守の案件は存続する
Perlの新規開発案件は減っていますが、既存システムの運用・保守の案件は現在も多くあります。現在稼働中のシステムを他言語に移植するよりも、このままPerlで動かし続けた方がメリットが大きい可能性があるからです。Perl自体は優秀であり問題なく使えるため、移植に無理してコストをかけることもないからです。
そのため、Perlエンジニアは今後仕事がなくなる、ということはないと推測されます。
Perlは今でも一定の評価はある言語
本記事ではPerlとは何かについて解説しました。Perlのメリット・デメリットや将来性などがお分かりいただけたかと思います。数々の新言語が登場している昨今ですが、Perlは未だに現役であり一定の評価を得ています。現状Perlで動かしているシステムは、今後も他言語に移植せずPerlのまま動かす企業も多いため、運用・保守の案件は今後も存続すると推測されます。
また、Perlを学ぶことで他の言語の理解も容易になります。たとえばPerlを通じてオブジェクト指向を学ぶことで、JavaやRubyなどの他のオブジェクト指向言語も理解しやすくなります。そのため、最初に学ぶ言語にPerlを選択するのも決して悪くはないでしょう。Perlに興味があるなら、ぜひ学習をはじめてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから