メールを送ってから約三時間が経過したが、待てど暮らせど真紅からの返事はない。まあ、待ってはいるものの、暮らしているというほどの時間は経過していないのだが、これは慣用句ということで、どうかご了承いただきたい。もうすぐ消灯時間となるので、それ以降はたとえば電源ユニットをはずして、ノートパソコンの筐体に内臓せし蓄電池の力だけを頼りに、シーツの中に隠し、隠密メール受信待機体勢をとらねばならぬだろう。
寝たふりをしつつ、定期的にチェックするというわけだ。そして、巡回に訪れる看護婦の気配を察知するや否や、すぐさまノートパソコンをシーツの中に隠蔽し、何事もなかったかのようにあらぬ方向を向いて、ヒューヒューと口笛を吹くという、電撃的動作および、くっさい演技が必要となる。病に冒されている自分にそのような芸当ができるだろうか。大丈夫。この私の家族への愛が、きっとその難行をなさしめうるであろう。
妻のことは、横浜にある家内の実家に連絡を取ったところ、義母がすぐさま病院へ駆けつけてくれると言ってくれたので、ひとまずは安心なのだが、問題は真紅のことだ。どこへふらつき歩いておるのか、あの馬鹿娘!ほげたら娘!ぴてかん娘!
おっと、私の病気を一刻も早く治すためには、心を平静に保つことが大事である。真紅が、父親からの緊急回答督促メールを無視してちゃらちゃら遊んでいるはずもない。何かメールの返事をよこすこともできないほどの、のっぴきならぬ事情があるのだ。ここは一番、わが娘を信ずるしかない。
さて、どこか別の世界にて、実装寺一家を応援して下さっている皆様におかれては、ActiveScriptRubyをインストールしていただいたであろうか?
繰り返すようだが、これは強制ではなく、あくまで推奨レベルである。やはり人それぞれ事情があると思うからだ。もう 100キロバイトもディスクに空きがない方もおられようし、『Rubyなんて大嫌いなので、自分のパソコンの中にいてほしくない』という方もおられよう。それならこの物語をお読みにならなければいかがですかと言いたいわけだが、そのようなことを強制できる筋合いはないのだ。
また、『RubyはUNIX環境で正当なる最新安定版を動作させてこそナンボである。したがってそのようにWindowsでしか動作しない突然変異のRubyなど、インストールできるものかは』という矜持をお持ちの方もおられようから。
真紅からの返事もないことであるし、ここで、ActiveScriptRubyについて、若干の解説を施してみたいと思う。
ActiveScriptRubyを解説するにあたり、ふたりの
登場人物にステイジへと上がってきてもらわなくてはならない。
ひとりめは、WWWブラウザ上のクライアントサイドスクリプト、そしてもうひとりは他でもない、プログラミング言語Rubyだ。
まず一人目のWWWブラウザ上のクライアントサイドスクリプトである。
誕生当初は、スタティックなテキストおよび画像を閲覧するだけのWWWであったが、それだけではどうにもつまらないというお調子者達が考案した仕組みにCGI(コモン・ゲートウェイ・インターフェース)というものがある。
ブラウザからCGIのURLリクエストを受けたウエッブサーバは、ファイルをブラウザに対してただ送出するのではなく、サーバサイドでプログラムを動作させ、その出力結果をブラウザへ送り返すという仕組みだ。もちろんブラウザからリクエストを受け取る際に、何がしかのデータもあわせて取り込むことができる。その結果、ユーザのリクエストに対して、動的に違ったページを送出するということが可能となり、WWWが一気にインタラクティブなものへと変貌したのだ。
だが、このCGIにも問題があった。例えば、ほんの簡単な入力チェックでさえ、サーバと通信し、サーバサイドのプロセスで行わなければならないということなのだ。
クライアントの数だけ、サーバ側にCGIプロセスが生成されるので、数千人が同時にアクセスした場合、どれだけサーバに負荷がかかるものか、容易に想像がつくというものだろう。そこで、ウエッブサーバにライブラリとして組み込むタイプのスクリプトエンジンが開発されたが、抜本的な解決策とはなりえなかったのである。そこで登場したのが、ブラウザ上で動作するクライアントサイドスクリプトだ。
『君達WEBサーバがね、そんな重たい重たいばっかり文句言うのであればね。こっちはこっちでやりますから!それでなにも文句ないだろう?ふん』とまあ、拗ねたかどうかはわからない。
ブラウザ上で、動的なコンテンツを実現する手法には、FlashやJavaアップレット、ActiveXコンポーネントなどがあるわけだが、これらはどちらかといえば拡張機能であり、HTMLの中に組み込まれてシームレスに動作するところまではいかない、WEBページの中に部分的に貼りついた、『勝手に動いたり、マウスで突っつけば反応する絵』のようなものだ。
またクライアント側にそれらを実行する外部
モジュールが必要であり、インストールされていないとピクリとも動かないという弱点がある。しかも、コンテンツの開発にも手間がかかる。
ではもっと簡単に、動的なコンテンツを作成することができないのかという要望から生まれたのが、DHTML(ダイナミックHTML)と、その中に記述するスクリプトというわけだ。
昨今では、このダイナミックHTMLと、サーバサイドのWebサービスが融合し、Ajaxなどと呼ばれて、Web2.0構築の基盤アーキテクチャとなっている。
サーバサイドで動作するCGI構築こそまさに百花繚乱、UNIXのShellからC言語、Perl、python、ruby、phpなどのスクリプト言語、はたまた、ASPにJSPと、さまざまな選択肢があるわけだが、クライアントサイドスクリプトは、JavaScriptのほぼ独占状態だ。昔、VBScriptなる怪体なものもあったが、現在では、ほぼ黙殺されている。
しかるに、ウェッブブラウザの立場からすると、HTMLファイルのscriptタグに記述されている言語エンジンを起動し、スクリプトを流し込み処理させるだけであるので、理屈の上からすると、呼び出しのお作法にのっとってくれてさえいれば、別にどのような言語エンジンでもかまわないのだ。ただし、HTML上のスクリプトはテキストデータであるから、テキストのコードを読み込んで処理可能なスクリプト言語であることが望ましい。
そこに着目して、著名なルビイストである『arton(アートン)』氏が開発したのがActiveScriptRubyというわけである。
artonといってもそれは俗にいうペンネームであり、立派な日本人だ。
ActiveScriptRubyの正体は、WWWブラウザと、Ruby本体を結ぶブリッジであるというわけだ。
それではこのへんで、満を持して、ふたりめの登場人物、スクリプト言語Rubyにステイジにあがっていただこう。
Rubyとは、まつもとゆきひろ氏によって1995年に発表されたスクリプト言語である。日本人の手によって開発されたということで、私なども柄にもないプチナショナリズムが刺激され、それだけでも評価が二割増しとなるわけであるが、そのような贔屓目ではなく、実際に『現存するプログラミング言語の中で、最高に文法が美しい』と評してよいのではないかと思っており、同様の感想を抱く人々も多数いるのである。
『文法が美しい』というのは、極めて概念的な表現であり、プログラミングのプの字もご存じない人にとっては、どの言語もひとしなみに数字とアルファベットと記号の羅列で、わけのわからぬものでしかないわけであるが、何と比較して美しいのかというと、それはもちろん、野に咲く花ではなく、道行くギャルでもなく、他のプログラミング言語なのである。
いくつかのプログラミング言語を経験すれば、おのおのの言語独特のクセや、長所や弱点が見えてくるわけであり、自然と、言語間での優劣が自分の中に育成されるわけだ。Rubyは、その言語間での比較において、最も優れた位置にあるというわけである。
しかし、具体的にどこがどう優れているのかということは、実際にコードをみていかないとわからないわけだが、そもそも『文法が美しい』という印象を与える第一の要素として、Rubyでは、すべてのものがオブジェクトとなっているということがあげられるのだ。
変数も定数もすべからくオブジェクトなのだ。『オブジェクト指向言語なんだから当然じゃん』といえばそれまでなのだが、Ruby出現までは、その当然のことを全うしている言語がほとんど皆無の状態だったのだ。なぜなら多くの『オブジェクト指向言語』が、既存の言語を拡張する形で作られたからなのだ。
C++のように。
であるから、従来のいわゆる『変数』と『オブジェクト』が混在する、カオス的状況となってしまっていたのである。
ところが我らがRubyでは、
puts "実装寺健一郎の独白".length
とか、
5.times{ puts '真紅よ連絡乞う' }
なということができるのだ。CやC++、Visual Basicなど、従来型のしんきくさい言語を生業とする技術者の皆様なら、これら書式がどれほど素敵なことか、ご理解いただけると思う。
おおっと。なにやら廊下の方でペタペタと足音がする。あれはおそらく自家製おトウフの行商などではありえず、相当の高確率でナースの巡回であろう。私は寝たふりをせねばならない。というか、薬が効いてきたので意識が朦朧としてきた。もうそろそろ本当に寝るとしよう。
それでは、細かい話はまた後日とさせていただこうか。
おやすみなさい。さて今宵、家内はどのような悩殺スタイルで夢に出てくるのであろうか。うひょひょ♪
最終更新:2008年11月30日 21:24