2007年01月01日

Perlはcgiのための言語ではない

学士様によればPerl5はCGIの言語らしい。

最初に入った医学部でも教養で統計学を学ぶ中でコンピュータ言語を教わりましたし,次の年に入り直した某大学でも教養部ではやはり基礎からコンピュータを教わりました。夏休みの宿題が機械語(アセンブラ)でOSを作って来るという奴で,これはさすがに頭の体操になりましたよ (笑) 当然,カーニハン&リッチー『プログラミング言語C』なんてまだ日本語訳が出てなく,洋書が教科書だったという時代です。

そういう基礎があるから,cgi の言語である Perl 5 程度は洋書の教科書で頭に入りました。だから,エディタで cgi を作る程度は「詳しい」というより「常識」の区分に入ってしまいます。(^^;)教え子が某大学で教員やってるんだけど,「常識」である基礎を覚えてくれないと嘆いております。

純粋に科学関係の話だとfw0氏10bull氏などに一歩どころか十歩も百歩も遅れをとるおいらですが、ことこちら方面となると妄言を飛ばされては困るので、火は消しておくことにする。

さて、cgi の言語である Perl 5の前にC言語の知識がどのくらいありそうかというと『プログラミング言語C』を原書で読んだというレベルならまあ、初級者レベルでしょうね。原著でないですが当然おいらも持ってます。まあ、業務で使った経験がないので本当に頭の体操レベルでしたが、PHPを無理矢理改造するときとかPerlを無理矢理改造するときとかPostgresのボトルネックを探るときとか2chを救うときなんかには凄く役に立った本です。つーわけで一般人以上で普通に業務に使えるレベルにはCを理解していると思います。C++でない理由は単にここ5〜6年は多忙でそんな勉強をする暇などないのでしょう。

さて、cgiですがCommon-Gateway-Interfaceの略で、単にサーバプログラムと外部プログラムのインターフェースの取り決めに過ぎません。サーバで動くプログラム言語ならば何でもいいのです。2chでお馴染みread.cgiはCで動いていますし、UrchinもCで動く優秀なアクセス解析ソフトです。cgiはPerl5に限った話ではございません。

しかし、kaetzchen氏の反論も予想できます「しかし、Perl5は事実上cgiにしか使われてはいない」or「cgiにおけるPerl5のシェアは広くPerl5はcgiのための言語といっても差し支えないのではないか?」

これについては断固No!と言わせて頂きます。Perl5はそもそもテキスト処理に優れた言語であり且つスレッドセーフである事から、cgiに向いていますが、それ以外の様々な分野で使用されます。Apache等のログ解析やxml解析を用いたRSSリーダーに使用されるのはもちろんのこと、各種様々な分野でCGIとは関係無しに動いています。ImagemagickもPerlですね。

Perlをcgi用と限定して紹介することはPerlの可能性や用途を狭めるとともに、「Perlなんて使わなくてもPHPやJavaで十分じゃん」という誤った解釈を広める結果につながります。現実には様々な制約によってPerlを使わざるを得ない場面は存在します。おいらは「Perlerは全員南の島のPerler島に行ってそこでPerler共和国を作って一歩も出てくるな」と思っているPerl嫌いですが、それでもパフォーマンスなどの制約によりPerlを選択しなければならない場面は多々あります。特に最近ではHTMLを出力しないBatchスクリプトなどで威力を発揮する機会が多いので、後学のSE諸君は枯れた技術といわないでPerlは一通り学んで欲しいものであります。

で、どうせ「miracleのように高等言語しか知らない似非SEは黙ってろ」とかいわれると思うのですが、私としてはkaetzchen氏の知識がいいかげんであるという事実を指摘するのに「Perl5の実行体はC言語で記述されている」と言う事実を挙げておきます。

そう、kaetzchen氏はPerl5を学ぶ必要など何一つなかったのです。

Common Gateway Interface

「CGIサンプル集」といった書籍でも暗黙的にPerlのコードであり(近年この状況は後発のスクリプト言語の台頭によって変わりつつある)、これらによってCGI=Perlのことだというふうな誤解をしている人もいる。

と、いうことなんでしょうな。



ラベル:学士様 kaetzchen
posted by ミラクルさん at 22:57| Comment(7) | TrackBack(2) | その他Web技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
あけましておめでとうございます。
トラックバックありがとうございました。

当エントリの意味は良くわからんのですが、学士様は(たとえその悉くが間違っているにせよ)広範な知識を身に付けているようですね。

魔に魅入られた・・

いや、その魅力は益々増すばかりに感じます。
Posted by 10bull at 2007年01月02日 01:10
トラックバックありがとうございました。

Kaetzchen 氏の言うことは間違いが多いのですが,全くの素人とは思えない部分があります。多少とも彼の言う業界にいるか,あるいはいたことがある人のように思われます。
Posted by silverfox at 2007年01月02日 17:35
はじめまして。
あちこちでKaetzchen氏のご高説を目撃し、ここまで流れてきました。
CGIってのは要するにWebサーバで動かすプログラム(ブログや掲示板など)の規格ですが、Perlっていう言語はWebが普及する前の1986年に作られてますから、「cgi の言語」ってのは言いすぎですね。

K&Rの原著が1978年、邦訳が1981年なので、Kaetzchenが「教養部ではやはり基礎からコンピュータを教わりました」というのは、この間の3年間でしょう。
「夏休みの宿題が機械語(アセンブラ)でOSを作って来るという奴」ということですが、当時のPCは非常に高価な上に、今のDOS/Vみたいな共通規格もなかったので、一体、どうやって動作確認したのか、非常に興味深いですね。

ありえるとしたら、大学のサーバ上に仮想PCシミュレータを立ち上げることぐらいですか。でも、そうするとデバッグのために帰省できないことになるので、気の毒ですねぇ。
まあ、当時のアメリカの大学は、ダイヤルアップでtelnetできたかもしれませんが。しかし、今度は電話代がすごいことになります。

そもそも、教養部だったらアセンブラでなくてC言語でOSを書くのでは? なにしろ、CはUnixを記述するために作られた言語、と言ってもいいくらいですし、ある程度は互換性も持たせられるので。
Posted by へげもん at 2007年01月03日 12:48
>10bullさん

よく分からなくていいですw
肝心なことは学士様は広範な知識を持っていて、その悉くにツッコミ所があるということです。
そちらにもまたお邪魔します。

>silverfoxさん

そうですね。専門用語を駆使して幻惑させるあたり並のレベルの知ったかぶりさんではないと思います。
多少なりともそういった世界で生きていた気配はあるんですよねえ。コンピュータの知識は書店で立ち読みレベルだとしても。

>へげもんさん

拝読しました。なるほど、その当時の環境なら指摘のとおり無理ありまくりですね。私がその観点に気がつかなかったのは若さゆえの過ちと笑ってくださいw 小学校入学前ですか。

Perl=CGI的な風潮は時代遅れであるにも関わらずまだそんな事言ってる人がいるのはちょっとあれだなあと思ってます。Perlは非常に使い勝手はいいです。ただ、私はあの省略の美学が嫌なだけですw
Posted by 管理人 at 2007年01月03日 23:55
釣りに気持ち良くつられてくれるあたりに、存在そのものがまさしくネタの疑惑払拭しきれず、といった感じです。私。
Posted by 殺伐特攻隊 at 2007年01月04日 00:14
そもそも彼が作ったらしいシステムを作った言語がPerlであったことはどうでもよくて、それ以上にシステムの実現方式それ自身(たとえば、どうやってほかのサーバのアクセスログをとるのか、どうやってプロキシサーバから、まさにアクセスしたユーザを特定するのか、とかとか)のほうがよっぽど困難だということがわかってないんですよね、あの人。
Posted by へんでる at 2007年01月04日 01:17
>殺伐特攻隊さん

釣りだったらどんなによいことかと思いますよ。本当に。世界人類のために釣りであって欲しいです。

>へんでるさん

怪しいリクエストに対して律儀に結果返していたら、普通はセキュリティーホールって呼びますよねえ。言語よりもアーキテクトに無理ありまくりなんですよ。だから嘲笑の的になるのです。
Posted by 管理人 at 2007年01月05日 14:17
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

kaetzchen さんはどこの大学のなんて学部に入ったんだろう
Excerpt: ref:Die Weblogtagesschau laut dem Kaetzchen クリスマスに死刑執行した野蛮国は日本だけ 早川健さん,こんにちは。少女マンガの記事が半分書けたので,コメントし..
Weblog: odz buffer
Tracked: 2007-01-03 12:21

[雑記] さらにすごいのが……
Excerpt: [Die Weblogtagesschau laut dem Kaetzchen クリスマスに死刑執行した野蛮国は日本だけ] 上のKaetzchenさん、色々な知識を集めて、それを混ぜ、もっともらし..
Weblog: ほしみんの日記
Tracked: 2007-01-13 02:01
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。