使える言語は Perl と言うと何故にバカにされるのか?

前から思っていたことなんですが、このネット業界ですらそうなんですが、

?さん 「言語何使ってる?」
僕 「Perl がメインかなぁ〜」
?さん 「( ´_ゝ`)フーン Java じゃないんだぁ・・・今時 CGI で書いてるの?」

ってなことが良くあります。まぁそういうときは、あぁこの人は Java しか知らないんだろうなぁ〜とか思います。
- スポンサーリンク -

ここで言う Java ってのは TomcatResin に代表される Servlet / JSP コンテナを利用したプロセス常駐型 java の事を指してます。決して Java-cgi のことを意味していません。多分彼らも、そういったことは意識していないと思います。

本業で随分昔(servlet 技術が出る前)に作成した Java-cgi で作られたアプリケーションが現役で活躍していますが、とてつもなく遅いです。いわゆる Perl-cgi が遅いと言われる理由と一緒です。一番の勘違いのポイントは、

CGI = Perl

って図式が無意識のうちにあると言うことですね。でも実際は、CGI の定義は、アクセスがあるたびにサーバが新しいプロセスを起動する形のサーバサイドアプリケーションのことを意味していて、CGI のプログラム言語は、サーバが実行できるものであれば C、PHP、Perl、Java 等何であっても構わないのです。

つまり、Perl だから遅いよねぇ〜ってのは間違いで、「 CGI で動かしているからのプロセスを起動する毎のオーバーヘッドが重いよねぇ〜 」ってな話しになるわけです。

逆に、Servlet / JSP コンテナと同様にプロセスが常駐してリクエストを処理するタイプの mod_perlFastCGISpeedyCGI は実務に耐えうるパフォーマンスで動作しますし、SledgeMasonCatalyst といったフレームワークを用いての高度な開発手法だってあるし、実際下記のようなサイトを支える技術でもあります。(引用:naoyaのはてなダイアリー

  • はてなのサービス全部
  • mixi
  • mixi (mod_perl2 を使ってるらしい)
  • del.icio.us (del.icio.us も Mason ですね)
  • TypePad
  • livedoor Blog
  • LiveJournal
  • Slashdot
  • Overture

昨今のハードウェアの進歩は凄まじく、単なる CGI ベースのアプリケーションでも随分なリクエスト数を処理できるようになってきました。そんな今だからこそ、開発スピード重視で Light Weight な Perl や PHP を使って開発するってのもアリだと考えています。

Perl は敷居が開発の低い言語で、実際よく動いているなぁ〜と思うスクリプトが多いのも事実ですが、玄人から素人までカバーする許容力もまた Perl の良いところと思う今日この頃です。なので Perl って聞いただけで言語の優劣を付けないで欲しいと願ってみたり・・・。

- スポンサーリンク -