2006年10月31日火曜日

JavaScript

 今日、人に説明しながらプログラム書いていたときに、なんとなく思いついて、こんなの書いたのでした。

if ('俺' == 'ヒーロー') {

}

これ、もし 俺がヒーローだったらを表してるつもりなんですが、今日、帰り道、やっぱりはオブジェクトにすべきだったかなあと思ったりなんかしまして、だって、('俺' == 'ヒーロー')なら結果は常にfalseにならざるを得ないわけです。だから、まずはHumanオブジェクトを定義して、それをvar = new Human();みたいにしてインスタンスを作成した後に、が英雄であるかどうかを判定すべきでしょう。で、人が英雄であるかどうかというのは、つまりその人の性質を判断するということになると思うので、Natureプロパティあたりを判定すればいいというわけで、つまり、こんな風に書くべきなのかなと思い直したのでした:

if (.getNature() == 'ヒーロー') {

}

なにあほなことゆってんの、てなものですが、人間疲れてくるとこんなもんです。とりわけ、プログラムなんて理屈やらなんやらで書くもんですから、途中で疲れてきて、どんどん頭が悪くなっていると自分でもわかって、言語支離滅裂になるし、しまいにはろれつもまわらなくなるし(やばい?)、そんなときにはこんなくだらないことでもしないとやってられません。

というわけで、さっきのプログラミング例を見ていただいておわかりのように、私は最近JavaScriptに取り組んでいます。JavaScriptというのはWebブラウザ上で利用できる言語でありまして、Webサイトの使い勝手をよくしたり、また最近ではAjaxと呼ばれる手法が花盛りで、過去には考えられなかったようなユーザーインターフェイスを実現したりと、まさしくJavaScript返り咲きといった具合なのです。だって、昔はJavaScriptといったら、ウィンドウをばんばか開いてうざがられたり、ステータスバーに文字列流してうざがられたり、Web上の嫌われ者という印象が強かったのです。ですが、Googleマップが火をつけたんでしょうかね、便利な例が人目につくところに現れて、それにAjaxなんて名前が付けられて、一気に広まって、それで気がつけば私もJavaScript書いてたりします。

Ajaxがばーっと広がったからか、Web上で参照することのできるJavaScriptリファレンスも充実してきて、実にありがたい限りだと思います。それこそ、ちょっと前までとなれば、文字を流す方法とか、ウィンドウ開く方法とか、便利なものだったらフォームの入力チェックでしょうかね、とにかくそういうことをやりたい人のためのサンプルコード集みたいなのしかなかったから、それを考えると格段の変化だと思います。けど、それでもまだ私には不満があって、というのは、ひとつのプログラミング言語としてJavaScriptを知りたいと思っても、そうした視点にたってJavaScriptを学べる環境というのが見当たらないというところです。

Web上の情報だけで済ませようという考えには限界があるなと思って、けれど巷のJavaScript本はといえば、結局サンプルコード集みたいなのばかりという印象で、だから私はオライリーの本に手を出すべきなのかなと迷っているところです。オライリーの本は、GISだったか、地図関連のコードブックをちょっと見たことがあって、けど本格的な本は読んだことがありません。DreamweaverにオライリーによるHTML/CSSとJavaScriptのリファレンスがついていて、それを読んだくらいでしょうか。

言語としてのJavaScriptを学びたいならオライリー本を読め、他には類書はないからという意見は何度か目にしていて、なのでオライリー本を買うべきなのかも知れません。その際には、やっぱりJavaScript 1.2中心の日本語訳第3版ではなく、JavaScript 1.5にまで言及している原書第5版を読むべきなんでしょうか。英語かあ。嫌だなあ。でも、コンピュータ絡みの新しい情報は英語ができないとどうしようもないからなあ、てな感じで迷っていたりします。

ところでHumanクラスで思ったのですが、JavaScriptはプロパティ(インスタンス変数)の隠蔽ができない言語なので、外からなんぼでも中をのぞけるんですよね。つまり、さっきHuman.getNature()みたいに、ゲッターを使ってNatureプロパティを参照していましたが、そんなことせずとも、Human.NatureでNatureプロパティにアクセス可能なのです。けど、これは便利な反面、危険もあって、それ以前に自分がインスタンスなら嫌だなあみたいな話でしてね、だって、内心の秘匿ができないわけです。つまり『サトラレ』みたいな状況ですよ。

そんなわけで、私はちょっとJavaScriptの国には住みたいとは思いません。

  • フラナガン,デイビッド『JavaScript』村上列,垰井正雄,安藤進訳 東京:オライリー・ジャパン,第3版,2000年。
  • Flanagan, David. Javascript: The Definitive Guide. 5th rev. ed. Sebastopol: Oreilly and Associates, 2006.

引用

  • 高橋研『翼の折れたエンジェル

0 件のコメント: