なぜ企業は Perl を嫌うのか
2008-08-20 22:12 /
“Why Corporates Hate Perl” というエッセイを読んで。
もちろん日本でも多くの企業が Perl を使っており、恐らく中小企業のレガシーなウェブサイトでは、いまでも「CGI」と呼ばれる Perl のコードが、問い合わせフォームや問い合わせフォーム、あるいは問い合わせフォーム、それから問い合わせフォーム・・・あ、そうそう、おまけに問い合わせフォームでも使われていることだろう。
僕が勤めていた会社では、2002 年に入った当時ですら、いきなり PHP でシステムを開発するよう命じられた。当時の社長は少しプログラミングをかじったことがあるというが、ともかく大の Perl 嫌いで、プログラミングの師匠であった人が C 言語と PHP をやっていたこともあって、PHP をサイトで使いたいと思っていたようだった。当時の PHP と言えば 4.2.1 が出たばかりのころで、PHP に関する本は入門書が数冊と『プロフェッショナル PHP』(WROX の翻訳)、それからオライリーのデスクトップリファレンスくらいしかなかったと記憶している。それも、大型書店か、日本橋のジョーシン・テクノランドみたいなパソコン専門店の書籍コーナーにやっと置いてあるくらいだった。
実際、同じ頃にシステム開発系の派遣会社へ面接に行ったとき、「いま勉強しているプログラミング言語はなんですか?」と聞かれて、C や Perl や JavaScript の話をした後で、「それから、PHP をそろそろ使ってみようかと思っています」と答えると、会話からはプログラミング言語をそれなりによく知って使っていると思えた面接担当者が、二人とも「それ、どういう言語なんですか?」「○○さん、これ聞いたことある?」「うーん、知らへんなぁ・・・」という感じであった。
5,6年前の PHP とはそういうものであった。対して、Perl(何度も言うが、日本では「CGI」という愛称で今だに親しまれている)はウェブ・プログラミングを志すなら使えて当たり前というものであった。もちろん、ラクダ本や Effective Perl を真面目に一通り読み込むくらい素養を持ったプログラマが何人いたかは、C や Java でも言えることでかなり疑わしいわけだが、それでもウェブ制作の現場でプログラマを名乗っている人間は、リファレンスなど見なくても大抵の短いコードは書いていたものだった。大工を生業にしている人間が大金をもっていない筈がないのと同じく、ウェブ・プログラマを生業にしている人間が Perl を使えない筈はないと言えるほどの地位をもっていたのだった。
公平に見ても現在では Perl の地位が下がったと言ってよいだろう。PHP はプログラマだけでなく、それまで K で始まるサイトなどから拾ってきて「実装」していたウェブデザイナーですら、片手間に書くくらいの便利で扱いやすい道具として普及してきた。もちろん、ここでは言語の良し悪しを表面的に語るだけの愚行は重ねるまい。したがって、事実として今までなら Perl を使っていた筈の人々の多くが PHP を使うようになったという一点だけを述べればよいだろう。
次に、いわゆるエンタープライズ向けとしてはどうだろうか。そもそも実例が少ないとも思えるのだが、Perl に代わって PHP がよく使われるようになったとは言えないだろう。したがって、Perl が嫌われているなどと言っても、その実状はコンシューマ向けのいわゆるウェブ・アプリケーションを開発するミドルウェアとしてどうかという視点でしか語れないように思う。
mixi やモバゲーといった、日本の大手サービスが Perl を活用しているのは周知の事実だし、冒頭で述べたように中小企業では、レガシーな CGI がいつまでもなかなかやって来ないビジターを待ちかまえている。PHP は確かに使われているが、Perl の実装件数と比べて目を見張るほど多いというわけでもない。実際のところ、PHP は逆に手軽な用途にしか使われていないという印象を受ける。中規模なシステムを組む場合でも、PHP は「デザイナーとの共同作業」という限られた用途に向けて宣伝されすぎてしまい、根っこは Java かあるいは CGI/C 言語で書かれている事例が多いと思う。
すると、ウェブ・アプリケーションを組むときに Perl が敬遠される理由とは、結局のところなんだと言うのか。単に、現在の専門学校では C, Java, PHP を教えて Perl を教えていないとか、あるいはレベルの低いプログラマが書いたナルシスト・モード全開の奇っ怪なコードをさんざん見せられたとか、そういった属人的な理由にすぎないのか(「作品」を要求されていない限り、プログラマは納品コードと称して詩を書くべきではない。これは、デザイナーが納品物と称して思いつきだけのお絵描きや Photoshop のフィルター試験を提出すべきでないのと全く同じ理屈である)。
このエッセイが述べているように、過去十何年に渡って蓄積されてきたメンテナンス性やビジネスプロセスとの乖離といった問題とは、Perl 自体のものでもなければ Perl で書かれたシステムの問題でもない。要するに、それが Python で書かれていようと、これから D 言語で書かれようと、情報システムやネットワークをどのように導入して(あるいは導入しないで)ビジネスを運営すべきかを、多くの経営者や上級技術者たちが顧慮してこなかったというだけの話なのだ。あの、ITバブルの頃に登場しては、数年後に市場から奈落へ蹴り飛ばされた、システム開発ベンチャーにも言えることだろう。
