Perlゼミ(サンプルコードPerl入門)

新着情報 8/14(火) 7時更新 Perl入学式 イベント情報

2015年02月10日

Perlの特徴 - バランスのとれた良い言語

  1. Perl
  2. Perlの特徴

 Perlって、どんな特徴を持った言語かうまく説明できますか。言語について議論するとき、表面的な見た目や評判だけで評価するのではなく、きちんと考えを持った技術者として評価する、そういうときに語ることができるPerlという言語の特徴を書いておきます。

テキスト処理に最適

 Perlはテキスト処理に最適なスクリプト言語です。文字列と数値を自動的に変換してくれますし、文字列に関する関数も使いやすく、正規表現が言語に組み込まれています。

 テキスト処理は、非常に利用頻度が高い処理です。Perlはテキスト処理に最適化されて設計されています。

 ログの整形や集計といった作業は、システム管理をしていると頻繁に発生すると思います。そんなときにはPerlが便利です。

記述が容易

 Perlはスクリプト言語のひとつです。Perlの型は動的であって、関数呼び出しも動的です。スクリプト言語は、型を意識する必要が低いので、初級者にとっては、非常に書きやすいです。

 トライアンドエラーで、動かして間違いを修正してということを繰り返しながら、プログラムを作っていくことができます。

C言語とシェルに似た文法

 Perlの文法は、C言語の文法とよく似ています。ifや()や{}やforの使い方を見てください。またPerlはUnix生まれの言語ですから、シェルにおける不便な部分を解消しようという意図があります。実は$という一見すると不思議な記号は、シェルから受け継いでいるものです。

 またuseやmyという識別子は、特殊なように見えますが、普通の人がイメージしやすいような言葉を言語学者ラリー・ウォールは選んだんです。varではなくってmyというのは、プログラムは、一般の人が日常的に利用するような感覚があらわれているのだと思います。

 Perlは、人々が感覚的になじみやすいように、配慮されている言語です。

コンパイル作業は必要なく、実行までの速度が速い

 Perlはスクリプト言語です。Perlスクリプトを実行するときに、コンパイル作業は必要ではなく、実行までの速度は非常に速いです。実際の作業では、プログラムを完成させるまでに、プログラムを何回も修正して、実行します。Perlは、体感的に実行までの速度が速いので、快適です。

 型推論のある静的型言語は、コンパイルが非常に遅い傾向がありますが、Perlは、動的な型を持つ言語なので、コンパイル速度は非常に速いです。

非常に高い後方互換性

 Perlは、後方互換性を大切にする言語です。現在のPerlのバージョン5は1998年にリリースされ、現在まで後方互換性を保っています。直近にリリースされた、Perlのバージョン4ともほぼ互換性がある形でリリースされました。

 Perlは、互換性を壊さないことに関して信頼のある言語です。開発コミュニティは、互換性に対して、非常に強い関心を払っているからです。

 趣味で書くプログラムと異なり仕事で利用するアプリケーションは、長い期間にわたって利用されます。また、機能追加に伴って非常にたくさんのプログラムが増えていきます。

 その数は、1万を超えることもあるでしょう。またお金の計算が含まれる重要なプログラムであったりすることが多いです。

 Perlは、そのような状況に非常に適したスクリプト言語です。Perlの高い互換性は、書かれたプログラムが壊れないということに寄与します。これは、ビジネス的な観点で見た場合は、非常に魅力的です。

 でも、それでは、Perlは言語として進歩しないのではないかという疑問が頭をよぎると思います。でも、少し調べてみてください、他のスクリプト言語でできて、Perlにできないことはありません。これは、Perlが、後方互換性を維持しつつも、柔軟であり、改善され続けている言語であるということです。Perlは、新しくなり続ける言語です。

内部実装の安定性

 Perlの内部実装は非常に安定しています。言語のバージョンが変わると、ころっと内部実装が変わって、新たな問題点が生み出されるということは、ほとんどありません。

 内部実装が崩れると、C/C++で書かれた拡張が動かなくなります。つまり、第三者によって記述されたC/C++バインディングが動かなくなるということを意味しています。

 Perlは、内部実装も非常に安定していますので、第三者が作ったライブラリも、非常に安定して運用することができます。

豊富なライブラリ

 PerlにはCPANと呼ばれるインターネット上のサイトに、豊富なライブラリが存在します。CPANに存在するライブラリは、非常に安定しており、運用も簡単です。perlbrewとcpanmというツールを組み合わせて利用すれば、非常に安定したライブラリ運用ができます。

将来におけるサポートの約束

 Perlは、将来にわたってサポートされることが約束されています。Perl6はいったいどうなんだという質問が多いですが、Perl6はPerlの代替や後継ではなくって、別言語としてスタートします。Perl6は、Cに対するC#の位置づけだと考えてもらうのがよいでしょう。Perl自体は、将来にわたってサポートされることが約束されています。

 C言語のサポートがなくならないように、Perlのサポートもなくなりません。

Webにおけるドキュメントの充実

 PerlはWebにおけるドキュメントが非常に充実しています。Perlは後方互換性を大切にしている言語なので、過去にかかれたWebに存在する記事のサンプルを、そのままコピーして、動かすことができます。これは初心者に対するPerlの強い利点です。

 後方互換性が壊れた言語では、Webのドキュメントが非常に使いにくく、これが新しいものか古いものかを常に判断して利用する必要があります。これは非常に混乱して困ります。Perlの場合ですと、Web上に記述されたサンプルがそのまま動くので、非常に便利です。

 Perlはライブラリやドキュメントの資産の積み重ねを有用に利用できる言語です。

パフォーマンス

 Perlのパフォーマンスは、テキスト処理に最適化されています。Perlという言語のパフォーマンス調整は、数値計算に特化していないので、いくつかのパフォーマンスではPerlは遅く見えることがありますが、Perlは、テキスト処理に最適化されているということがひとつの理由としてあります。

 数値計算の速度は静的言語には劣りますが、性能の用件が不可欠な部分はC/C++のバインディングを書くことによって解決することができます。

 たとえば、C/C++のバインディングを使って書かれたPerlのWebサーバーは、静的言語に劣らないパフォーマンスを発揮します。

 Perlは、利用頻度が高いテキスト処理を適切に処理でき、さらに、パフォーマンス的な困難が発生したときは、C/C++のバインディングを書くことによって、解決できるように設計されています。

参照カウント方式のGCによる高い応答性

 PerlのGC方式は、シンプルな参照カウント方式です。オブジェクトへの参照が無くなった時点で解放されます。相互参照、循環参照を自分で管理する必要があるのですが、パフォーマンスへの影響は小さいです。

 参照カウント方式の利点は、たくさんのオブジェクトが作られた場合にでも、応答性が落ちないということです。Full GCを行う必要のある実装では、大量のオブジェクトを解放するタイミングで、応答性が落ちます。

 これはストップザワールドと呼ばれ、リアルタイムアプリケーションや、Webアプリケーションの場合など、顕著に影響が現れる場合がありますが、Perlの場合ですと、参照カウント方式ですので、応答性が極端に落ちるということがありません。

省メモリ

 Perlは、スクリプト言語の中では、省メモリーで動きます。メモリを、がつがつ追加できる予算のある環境であれば、メモリはそれほど気にする必要はないですが、現実的には、メモリの使用量が小さいのは快適だと思います。

オブジェクト指向を使って、非常にきれいに設計できる

 Perlはオブジェクト指向をサポートしていますから、もちろんクラスを作成することができます。うまくクラスに分けて設計すれば、大規模なプログラミングでも、全体を非常にきれいに設計することができます。

ほんどのUnix/Linux環境にデフォルトでインストールされている

 Perlは非常に広く普及している言語で、たいていのLinux/Unix環境にはインストールされています。ですので、Perlで、プログラムを作成すれば、配布は容易です。

Windowsに対するサポート

 PerlはWindows環境でも広く利用されているので、Windowsに対するサポートもしっかりしています。

システム管理からWebアプリケーションまでを含む広い応用範囲

 Perlは後方互換性が高いために、ビジネスライクで長期間利用する部分やシステムよりの部分を記述しやすい言語になっています。また、Perlは、Webアプリケーションの先端分野でも活躍している言語です。Perlを使えば、システムを一貫的に記述することができ、広い応用範囲で、保守性やメンテナンス性の高いプログラムの運用をすることができます。

PHP,Python,Rubyなどのスクリプト言語のオリジナルのアイデアはPerlにある

 PHP,Python,RubyというPerlより後に登場した言語がありますが、かなり多くの言語設計のアイデアは、Perlが元になっています。ラリー・ウォールのアイデアがなければ、これらの言語はなかったことでしょう。

 PHPはもともとはPerlで記述されていました。またRubyやPythonにある言語的アイデアの大部分はPerlからのものです。Perlは、スクリプト言語のアイデアの源泉としての、役割を果たしています。

 もちろん、Perl自身も、まだまだメジャーですし、現役です。Perlは、スクリプト言語のアイデアの源泉ということを豆知識として覚えておくと面白いんじゃないでしょうか。

自信を持ってPerlを使いましょう

 Perlはたくさんの利点をバランスよく備えた言語です。よくメンテナンスされたPerlのソースコードは、他の言語に見劣りすることもありません。Perlのソースコードをメンテナンスして利用していくというのが、もっとも生産的な選択肢となる現場は多いと思います。

 Perlを使うのに、後ろめたさを感じる必要はないと思います。自信を持ってPerlを使いましょう。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証