JS オタが非オタの彼女に JavaScript 世界を軽く紹介するための 10 実装 ― 2008年08月03日 20時00分
アニオタが非オタの彼女にアニメ世界を軽く紹介するための 10 本が流行っているようで (◯◯オタが非オタの彼女に◯◯世界を紹介するための 10 本まとめ)。えっ、もうブームは去った? まあそんなこと気にせず勝手にいっちゃいます。
軽く紹介するための 10 本
まあ、どのくらいの数の JS オタがそういう彼女をゲットできるかは別にして、「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、その上で全く知らない JavaScript の世界とはなんなのか、ちょっとだけ好奇心持ってる」ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、JavaScript のことを紹介するために見せるべき 10 実装を選んでみたいのだけれど。(要は「脱オタクファッションガイド」の正反対版だな。彼女に JavaScript を布教するのではなく相互のコミュニケーションの入口として)
あくまで「入口」なので、時間的に過大な負担を伴う SML、PHP 製の実装は避けたい。できればオブジェクト指向言語、手続き型でも C 言語製にとどめたい。あと、いくら JavaScript 的に基礎といっても古びを感じすぎるものは避けたい。ブラウザ好きが『Mosaic』は外せないと言っても、それはちょっとさすがになあ、と思う。そういう感じ。
彼女の設定は
- JavaScript 知識はいわゆる「Java」と混同してるのを除けば、うざいポップアップ程度は見ている
- ギーク度も低いが、頭はけっこう良い
という条件で。
まずは俺的に。出した順番は実質的には意味がない。
SpiderMonkey (Mozilla Foundation)
まあ、いきなりここかよとも思うけれど、「JSRef 以前」を濃縮しきっていて、「JSRef 以後」を決定づけたという点では外せないんだよなあ。実装言語も C 言語だし。
ただ、ここでオタトーク全開にしてしまうと、彼女との関係が崩れるかも。この派生過多な実装について、どれだけさらりと、嫌味にならず濃すぎず、それでいて必要最小限の情報を彼女に伝えられるかということは、オタ側の「真のコミュニケーション能力」の試験としてはいいタスクだろうと思う。
DMonkey (Project DMonkey)、ExtendScript (Adobe Systems)
アレって典型的な「オタクが考える一般人に受け入れられそうな実装 (そうオタクが思い込んでいるだけ。実際は全然受け入れられない)」そのものという意見には半分賛成・半分反対なのだけれど、それを彼女にぶつけて確かめてみるには一番よさそうな素材なんじゃないのかな。
「JS オタとしてはこの二つは“マクロ言語”としていいと思うんだけど、率直に言ってどう?」って。
JE (Father Chrysostomos)
ある種の軽量言語オタが持ってる Perl への憧憬と、XS いらずのオタ的な Pure-Perl へのこだわりを彼女に紹介するという意味ではいいなと思うのと、それに加えていかにも CPAN な
- 「コンバート的なださカッコよさ」を体現する Perl/JS オブジェクトの相互変換
- 「ストリーム的に好みなデータ」を体現する直列化可能性
の二つをはじめとして、オタ好きのする機能を世界にちりばめているのが、紹介してみたい理由。
Narcissus (Brendan Eich)
たぶんこれを見た彼女は「ナルシストだよね」と言ってくれるかもしれないが、そこが狙いといえば狙い。
この系譜の実装がその後続いていないこと、これがアメリカでは大人気になったこと、日本ならオレオレ言語ブームになって、それがブラウザ上で動かされてもおかしくはなさそうなのに、ブラウザ上で動くこういうのがつくられないこと、なんかを非オタ彼女と話してみたいかな、という妄想的願望。
futhark (Opera Software)
「やっぱり JavaScript はブラウザのためのものだよね」という話になったときに、そこで選ぶのは『InScript』でもいいのだけれど、そこでこっちを選んだのは、この実装にかけるテッちゃんの思いが好きだから。
断腸の思いで磨きに磨いた『linear_b』をそれでも捨てる、っていう判断が、どうしても俺の心をつかんでしまうのは、その「捨てる」ということへの諦めのよさがいかにもオタ的だなあと思えてしまうから。
linear_b の速度を俺自身は遅いとは思わないし、もう速くできないだろうとは思うけれど、一方でこれが Geoffrey Garen や Brendan Eich だったらきっちりスピードアップしてしまうだろうとも思う。
なのに、各所に頭下げて迷惑かけて新しいスクリプトエンジンを作ってしまう、というあたり、どうしても「はじめからやり直したい症候群のオタク」としては、たとえテッちゃんがそういうキャラでなかったとしても、親近感を禁じ得ない。実装自体の高評価と合わせて、そんなことを彼女に話してみたい。
Rhino (Mozilla Foundation)
今の若年層で Javagator 見たことのある人はそんなにいないと思うのだけれど、だから紹介してみたい。
JSR 223 よりも前の段階で、Java からの呼び出しとか LiveConnect とかはこの実装で頂点に達していたとも言えて、こういうクオリティの実装が Java でこの時代に書かれていたんだよ、というのは、別に俺自身がなんらそこに貢献してなくとも、なんとなく JavaScript 好きとしては不思議に誇らしいし、いわゆるアプレットでしか Java を知らない彼女には見せてあげたいなと思う。
JavaScriptCore (WebKit Project)
SquirrelFish の「レジスタ」あるいは「ダイレクトディスパッチ」をオタとして教えたい、というお節介焼きから見せる、ということではなくて。「終わらない速度競争を毎日生きる」的な感覚がオタには共通してあるのかなということを感じていて、だからこそ Tracing 版『Tamarin』仮想マシンは JIT 以外ではあり得なかったとも思う。
「高速化した日常を生きる」というオタの感覚が今日さらに強まっているとするなら、その「オタクの気分」の源は『KJS』にあったんじゃないか、という、そんな理屈はかけらも口にせずに、単純に楽しんでもらえるかどうかを見てみたい。
JScript (Microsoft)
これは地雷だよなあ。地雷が火を噴くか否か、そこのスリルを味わってみたいなあ。
こういう微妙に非互換風味の言語をこういうかたちで Active Script 化して、それが非オタに受け入れられるか気持ち悪さを誘発するか、というのを見てみたい。
長門有希 (涼宮ハルヒの憂鬱)
9 本まではあっさり決まったんだけど 10 本目は空白でもいいかな、などと思いつつ、便宜的に長門を選んだ。SpiderMonkey から始まって長門で終わるのもそれなりに収まりはいいだろうし、SQL や C++ も使えるみたいだし、紹介する価値はあるのだろうけど、もっと他にいい実装がありそうな気もする。
というわけで、俺のこういう意図にそって、もっといい 10 本目はこんなのどうよ、というのがあったら教えてください。
「駄目だこのオタク未満は。俺がちゃんとしたリストを作ってやる」というのは大歓迎。こういう試みそのものに関する意見も聞けたら嬉しい。
参考文献
コメント
_ naruse ― 2008年08月03日 23時15分
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
トラックバック
このエントリのトラックバックURL: http://nanto.asablo.jp/blog/2008/08/03/3671318/tb