Perlの哲学 - Perlに対する誤解を解く

Perlの正規表現はsedの表現を取り入れたもの

Perlの置換の正規表現って何かに似ていると思いませんか? そうですLinux/Unixのsedというコマンドによく似ていますね。

# Perlの置換の正規表現
s/foo/bar/

# sedによる置換
sed 's/foo/bar/'

sedですべて置換する場合のオプションもPerlと同じです。

# Perlですべて置換する正規表現
s/foo/bar/g

# sedですべてを置換
sed 's/foo/bar/g'

Perlはsedの表現を参考にしている

Perlというプログラミング言語のひとつの利点は、Linux/Unixで学んだものが、表現が概念をそのままPerlで、使えるということです。

Perlの置換の正規表現の場合も、Linux/Unixで慣れ親しんだsedコマンドの使い方を知っていれば、それをそのままPerlプログラミングで使うことができます。

Linux/Unix環境で、シェルスクリプト、sed、awk、C言語を学んだユーザーにとっては、Perlの学習コストは、とても低いものになっています。

大学1年生のソフトウェアの授業で、C言語とUnix/Linuxサーバーについて、学ぶことと思います。C言語の文法を学習して、grep、sed、awkなどのLinuxコマンドを少し学びます。

C言語とUnix/Linuxサーバーについての知識があれば、Perlでは、使い方や概念を、そのまま活用することができるので、学習コストが低いのです。

Perlは学習コストが高いと誤解していませんでしたか。

ソフトウェアエンジニアにとっては、C言語とUnix/Linuxサーバーの知識の学習は必須項目ですね。

その知識がしっかりしていれば、Perlの使い方を覚えるのに、1か月もかかりません。他の分野で覚えた概念がPerlでそのまま活用できるからです。

sedの使い方がほぼそのまま使えるというのも、「ユーザーが見慣れた表現は使いやすい」というPerlの哲学に基づいています。

Perlは「つぎはぎだらけ」と批判する人たちは、Perlを否定的に語ります。

またPerlユーザー自身も、当たり前すぎて、Perlの使いやすさの秘密を、はっきりと理解していません。

でも実際は、Perlの側から事実に基づいた評価を行うと、Perlは、Unix/Linuxとの親和性に非常に配慮した設計になっているといえるのです。