やっぱりJavaScriptは、ナンデモアリなのね

「初心者でも使えてプログラマでも困惑するJavaScript」の最後に、僕は次のように書きました。

「なんでもオブジェクト」である点は“オブジェクト的”だし、動作実体が関数だけであり、高階関数も扱える点は“関数的”。が、実際のコードは“手続き的”に書かれます。というわけで、マルチパラダイムというより、パラダイムなんて派閥の枠をコケにしている言語仕様であり、ちょっと小気味よいですね。

「コケにしている」かどうかはともかくとして、特定のパラダイムや系統に所属させにくいのは確かでしょう。それゆえに、さまざまなパラダイムや系統に所属する人々が、JavaScriptを自分の流儀で使おうと試みるようです。

何度か言及しているJSANhttp://openjsan.org/)のWebサイトの先頭には、"CPAN".replace(/CP/, "JS") と書いてあります。当然ながらCPAN、つまりはPerl文化圏に由来しています。

一方、Prototype.jshttp://prototype.conio.net/)はRuby文化圏を出自としているようです。READMEの最初の段落に曰く:

Its development is driven heavily by the Ruby on Rails framework, but it can be used in any environment.

MochiKithttp://mochikit.com/)はといえば、 Python-inspired JavaScript kit だそうで(META.jsonの記述)、Python好きらしい。

The f(m) projecthttp://fm.dept-z.com/)では:

The f(m) project is an ECMAScript Base Class Library, based on the .NET Framework, (以下略)

はー、.NET Frameworkですか。

Beyond JShttp://w3future.com/html/beyondJS/)だと、curryが好きなあたりからみるに、インド人、じゃなくて(高階)関数型プログラミングの人なんでしょう。

ほんとにナンデモアリ。しかし、派閥を作っているわけではなくて、共同作業もあるみたいですね -- JSANに登録されているモジュールClass-0.05のAUTHORは、

Written by Bob Ippolito
Interface initially designed by Sam Stephenson for the Prototype library
Maintained by Rob Kinyon (rob.kinyon@iinteractive.com)

Bob IppolitoはMochiKitの作者、Sam Stephensonはprototype.jsの作者、そしてRob KinyonはJSANにたくさんコントリビュートしている人です。