perlについて

perlを長年使ってきた感想。
あとでwikiとかに張る(予定)。


perlは、(Larry Wall言語学者であるのも関係しているのか)プログラミング言語の中では、自然言語に近い位置にあると思う。
しかし、自然言語の曖昧さも持ち合わせてしまっているように思える。
他のrubypythonと言った言語と比べても、「罠」はずっと多いのでは無いか。
(数々の罠の一例: http://d.tir.jp/pw?bk-perl)
例えば、複数の演算子を組み合わせた際の暗黙の優先順位や、暗黙の型変換。
これらは便利な反面、暗黙の罠について、一通り理解していないと、微妙に意図しない結果になる可能性も秘めている。
(perlを一通り理解するのに、自分は五年ぐらい使ったと思う。)
コマンドラインからワンライナーで使う分には、確かに「大体のパターンで正しく動く」で充分だ。
しかし、不特定多数に提供するようなアプリを書く場合には、「あらゆるパターンで正しく動く」事が要求される。
そして、perlの持つ、上記のような性質から、一通り理解していない者は、暗黙の罠にかかる可能性が高い。
そして、「大体のパターンで正しく動くが、特定のパターンでセキュリティホールが発生する」アプリを書いてしまう可能性が、他の言語よりも「いくらか」高い、と、自分は思っている。


perlのソースが読みにくいかどうかについては、確かに他の言語よりは読みにくいが、それほど致命的なものではないと思う。
ソースの読みやすさは、書き手の労力によるものが大きいと思うし、どんな言語でも読みにくく書く事は可能。


perlは、文字列を直感的に扱える、正規表現によるマッチングが非常に便利だった為か、文字列をストリームとして扱う機能が非常に貧弱だ。
単純なパーザを書くのは非常に楽だが、ある程度複雑なパーザを書くには向かない。