« 肩こりその後 | トップページ | Coda WebGroup »

JavaScript

プログラム言語の中には、オブジェクト指向スクリプト言語というカテゴリがあります。

C++やJavaなどの本格的なオブジェクト指向言語などとは違って、コンパイル要らずで手軽に使うことの出来るという点で人気があるようです。ozumaさんの好きなRubyや、gamellaが使っているPythonが代表的な例でしょうか。

Rubyは日本人が作った言語なので、日本では一般的にRubyの方が人気があるのですが、Pythonには非常に有力なライブラリが揃っていること、そしてRubyがあまりにもUnix的過ぎることにより、Pythonを好んで使う人も多いようです。

で、僕は普段の自動処理に何を使っているかというと...実はRubyもPythonもPerlも使っていません。もっぱらJavaScript(より正確に言うと、そのwindows上の実装であるWSHと、Peggy上の実装であるMocaScript)です。

JavaScriptというと、大体はウェブサイトに動的な動作をさせるのに使われる言語というイメージになると思います。しかも、そう言うページは大体がうざったいだけで(ポップアップなどにもよく使われる)、良いイメージを持たれることはあまりありません。当然のごとく、JavaScriptという言語も一般には良いイメージを持たれていないと思います。しかし、使ってみるとわかるのですが、JavaScriptは至極まっとうなオブジェクト指向言語であり、しかも非常にユニークな実装を持っています。

優れた解説サイトも幾つかあります。

オブジェクト指向プログラム言語としてのJavaScript
Hawk's W3Laboratory

JavaScriptの面白さは、他の言語で言うクラスを動的に扱えるということです。例えば、

var hoge = new Object();
hoge.hoge = "hoge";

などとやっても全然怒られません。なぜかというと、これは内部的にはこう書くのと同じだからです。

var hoge = new Object();
hoge["hoge"] = "hoge";

要するに、オブジェクトのメンバーは全部連想配列に過ぎないのです。関数もオブジェクトなので、次のように書くことができます。

var hoge = new Object();
hoge.hoge = "hoge";

hoge.func = function() {
  return this.hoge + this.hoge;
};

これで hoge.func() と呼べば、"hogehoge" が帰ってきます。同じ型の新しい変数を作りたかったら、メンバーを全部コピーしてしまえばよいわけです。
また、関数がオブジェクトなので、引数として渡すことによって、イテレータのようなこともすることができます。

クラスの宣言が要らないということは、言語としてRubyやPythonよりもさらに一段階安易に使えるということです。もちろん大規模なプログラミングには向いていませんが、ささっと書くには非常に楽ですね。あと、実装も楽だと思います。現に、JavaScriptには、各種ブラウザをはじめ、非常に多数の実装があります。

|

« 肩こりその後 | トップページ | Coda WebGroup »

「パソコン・インターネット」カテゴリの記事

コメント

JavaScript といえば,Opera 内蔵の京セラ端末ですね!
公開されてるゲームをやってみると,JavaScript でここまでできるのか!
と驚いてしまいます.
何か作ってみようかなぁ.

投稿: oohama | 2004.07.04 22:18

>MocaScript
10秒ほど、「MonaScript」かと思ってビックリしました(w

投稿: ozuma | 2004.07.04 22:29

>oohama
僕はここ
http://mist.freespace.jp/kumisuke/games/index.htm
でも紹介されている「ソリティア」が好きです。全然クリアできないけど(^^;
僕も一つ作ってみたいですね。

>ozuma
本当にありそうでコワイですね。
「monascript」でググってみると...

投稿: ashel | 2004.07.04 23:30

あと、JavaScriptと言えば忘れてはいけない本が。
http://www.amazon.co.jp/exec/obidos/ASIN/4873110270/

Peggyの作者であるJunさんは、この本を読んでMocaScriptを実装したのだそうです。そのせいか、MocaScriptは控えめに「JavaScript風」言語と言うことになっています。
本家(Netscape)より遙かに強力でしかも高速なんですけどね。

投稿: ashel | 2004.07.05 02:08

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/1789/900674

この記事へのトラックバック一覧です: JavaScript:

« 肩こりその後 | トップページ | Coda WebGroup »