クライアントサイドで web page 内スクリプトを使う?

JavaScript を使いたくなった言い訳

クライアント側で解釈する ページ埋め込みスクリプトが嫌いでした

そのブラウザで動きますか?

Web page に埋め込んで, クライアント側に解釈させるスクリプトというと, 代表格は JavaScript だと思う. なので, ここでは JavaScript を念頭に置い て話をしたい.

私は正直言って, JavaScript が嫌いだった. 理由は簡単で, 私の常用して いるブラウザ, Lynx で使えないか ら. 使わなくてもいいようなところで JavaScript を使っていて, そのために Lynx で満足に表示されなかったりしたというような経験から, JavaScript を 嫌っていた.

それ以外にも, 例えば Netscape Navigator と Internet Explorer (後者 では JavaScript ではなく JScript と呼ぶそうですが) で仕様が微妙に違う (JavaScript のコードで, ブラウザ名によって条件分岐しているのを見かける と, 何か無益な努力をしているなぁとか感じる) とか, あるいは JavaScript を使っていても単に欝陶しい (漢字, 正しい?) だけのページになっていたり するのを見ているうちに, 次第に Netscape Navigator でブラウズするときも JavaScript を OFF にするようになっていった.

やっぱサーバサイドスクリプトでしょう

でも, web page を動的にひと捻りするということは, どちらかというと好 きだった. なので, クライアント側ではなくサーバ側で解釈させるページ埋め 込みスクリプト, サーバサイドスクリプトは, 昔から大好きだ. 古くは NCSA httpd の SSI (SSI は Apache に引き継がれ, 更に 拡張されている) や PHP. 新しいところ では, まだ使ったことはないけど Ruby を埋め込む eRuby には興味 がある.

サーバサイドスクリプトの利点の 1 つに, JavaScript などのクライアン トサイドなスクリプトと違って, ブラウザを選ばない点がある. サーバサイド スクリプトの場合, 動的と言ってもそれはクライアント側へ送られる手前まで の話である. クライアント側へ送られる HTML 文書はすでに静的なものになっ ているので, 普通に HTML を解釈できるブラウザなら, まず問題なく表示でき るだろう.

というわけで, サーバサイドスクリプトは大好きだ. 日常的に Linux を使っていることもあり, そこに Apache をインストールし, SSIPHP のデバッグを自分の PC ででき るようにして, いろいろと遊んだ.

クライアントサイドスクリプトに対してサーバサイドスクリプトの欠点を 挙げるとすれば, 1 つに, 上に書いたようなデバッグ環境の構築が面倒という ことがある. 例えば JavaScript なら, 対応しているブラウザさえ持っていれ ば, それだけで実行環境が整う. したがって, 実際にスクリプトを動かしてチェッ クすることも容易だ. しかしサーバサイドスクリプトの場合, サーバと同じ環 境を準備しなければならないので, ちょっと敷居が高い. でも, そんなことは 時間の流れが解決してくれるだろう と思っていた. サーバ サイドスクリプトが流行れば, 簡単な解説書が出たりするだろう, そう安易に 考えていた.

心変わり

世の中は変わったか?

で, 時は流れた. しかし, 状況はそれほど変わらなかった :-p

変わらなかったもの, その 1. サーバサイドスクリプトを使わせてくれる サーバが, 実はほとんどない. 割と昔にその地位を確立させたような SSIPHP は, 使えるサーバがいくつかある (と思う). しかし新参のサーバサイドスクリプトがどんどん使えるようになっ ていくような状況には, 今はない. セキュリティ絡みの問題を恐れて, 新しい 機能をサーバに追加するのを躊躇しているのだと思うが, 結局状況は変わらな かった. CGI を使えるサー バでも, Perl は昔っから使えるけどそれ以外の言語は使えないというのも, 同じような理由からだろう.

変わらなかったもの, その 2. サーバサイドスクリプトのデバッグの手間 は, 未だに低減されていない. 多分, サーバサイドスクリプトを使える環境が 揃わないから, それを使いたいという人も少なくて, 結局はデバッグ環境を容 易に整えたいという需要もなかったのだろう.

繰り返しになるが, サーバサイドスクリプトを取り巻く環境は, 一般人に とってはほとんど変わらなかったのだ. 残念ながら.

結局ページ埋め込みスクリプトなのだ

個人的にはサーバサイドスクリプトのサンプルを作って, 極々身内に公開 したりというように, 小さな小さな「サーバサイドスクリプト普及運動」みた いなものをしてきたけど, 結局広まらなかった. 一方で JavaScript は, 今で もそれなりの数のユーザを確保していると思う. 本屋に行けば, JavaScript の本をたくさん見かける. しかし, 一時期ほどの活気が JavaScript にあるか というと, 案外そうでもないんじゃないかと思う. JavaScript を作る人と使 う人が固定化していて, 「あっ!」というような新たな仕掛けが出てきにくく なっているような気がする.

だったら, 今まで JavaScript でプログラミングをしていない人を JavaScript 界に呼び寄せて, JavaScript の世界を少しかき回してみたい, な んて思った. なので, 非 JavaScript プログラマな私も, JavaScript プログ ラミングをしてみたくなった.

もう 1 つ. JavaScript に関わらず, プログラミング人口を増大させたい と私は密かに思っている. いろんなバックグラウンドを持った人がプログラミ ングをすることで, 計算機の世界はもっと楽しくなるはずなのだ. 来れ, 1 億総プログラマ時代!! その実現のための第 1 歩として, 私は人の目につきやすい JavaScript のプログラムを作る. これに触発されて, プログラムを作る人が 1 人でも増えることを祈念しつつ.

使おうと思えば使えるぞ

非常に正確さを欠いた記述かもしれないが, 端的に言わせてもらえば, Netscape Communications 社のブラウザは, free な Mozilla.org という団体で開発が続 けられている. Mozilla でも JavaScript が使えるということは, その JavaScript の実装はきっと free なのだろう.

さっき私は, JavaScript は Lynx で使えない と書いた. しかしその気があれば, Mozilla の JavaScript 処理系をパクって Lynx にくっつけることで, Lynx でも JavaScript を使えるようになる可能性がある. つまりやる気があれば, JavaScript 非対応なブラウザを JavaScript 対応にすることはできるのだ. やる気があれば…

使ってみて…

と, いろいろと理由を書いてみたが, 最後に JavaScript を使った感想を 書いておきたい.

第 1 印象は, 案外面白そうだなというもの. HTML の FORM 要素の範囲内 ではあるが, GUI プログラミングが結構簡単にできる. 文法的にも, 必要最小 限のものは一通り揃っているので, JavaScript の雰囲気に慣れてくれば, そ んなに苦労はしないだろう. また DOM との連係をきっちりやれ ば, 相当楽しいことができそうな気がした.

ちなみに私の参考書は, 「入門 JavaScript」 (久野靖, アスキー出版, My UNIX Series) だ. プログラミングの初学者にはきついと思うが, プログラミ ング (できればオブジェクト指向なプログラミング) の経験があれば, この本 を辞書的に使うことで JavaScript のプログラミングをできるようになると思 う.



[うさぎ印] おたより, お待ちしています

sato.mshr@gmail.com