CGIってなんですか?

むかし「PerlでもCGIできるの?」と聞かれたことを思い出しました。1を知り10を得る。本質を考えるって大事です。

Flashは、感覚だけで触ってても全く思い通りに動いてくれません。トライ&エラーを繰り返しても、さっぱり進まなかったとき、ふと思い出したことがありました。

PerlでCGI?

ずいぶん昔ですが、とある先輩エンジニアから、「PerlってCGI組めるの?」と聞かれたことがあります。「できますよ」と答えると、「Cでならやったことあるんだけどねぇ、Perlで出来んのかなぁと思ってさ」みたいな返答。おそらくこの人は、CGIの意味を知らない。別の言語が出てくるたびに「PHPでCGI組めるの?Rubyでは?」と、聞いてくるのでしょう。

何も知らない新人でも、エンジニアに向いてるタイプの人は、「CGIって何?」という疑問にたどりつきます。こういう人は、ずっと長くエンジニアを続けられるんだと思います。


CGIって何ですか?

「CGIって何ですか?」と聞かれたら、なんと答えるだろう・・。
よくある説明は


 条件に合わせて動的にHTMLを生成するしくみうんぬん

確かに私も、お客さんに説明するときはこういう言葉を使うかもしれませんが、でも、あまりに的を得ていない説明が、一人歩きしている良い例です。たぶん本質は、

 CGIとは、標準入出力をHTTPソケットに切り替える仕組みで、
 Webサーバが提供している機能。

たったこれだけのことを理解していれば、「この言語でCGIできるか?」なんて悩む必要がありません。標準入出力をあつかえる言語(つまり、ほぼ全ての言語)は、CGIを組めるからです。※もちろん現実的には、その言語がCGIを作りやすくする親切なライブラリを備えているかどうかは、問題です。でも、微々たる問題です。

HelloWord程度を返すCGIになら、人間だってなれるのではないでしょうか?一生懸命キーパンチすれば、30秒くらいで応答できそうです。


本質を知って、10を得る

知らない言語や技術が出てくるたびに、いろんなことを調べなおしてたら、身が持ちません。そして、そのうちに疲れ果てて、プログラムを書く意欲も失せてしまいます。
前例のように、「本質」を探し出すと、無駄な時間や労力は使わなくてすむことが多々あります。そしてそれは、ちょっと楽しいです。そう感じる人は、エンジニアとして長続きすのだろうと思います。

別にプログラミングだけの話じゃありませんね。手を休めるヒマもないときこそ、手を止めて、ヒタっと考えるようにしたいものです。


そんな悟ったようなこと書きながら、Flashでは手当たり次第にスクリプト書いてはムービーをぶち壊しています。意欲を失わないうちに、なんとかFlashというものを見極めたいと思ってはいるのですが・・・(マニュアルわからな過ぎ!)。


コメント

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: