OperaのユーザーJavaScript機能実装の経緯について
Friday, 2. February 2007, 19:07:54
はてなブックマークのhotentryにあがっていたそろそろまたJavascriptオフの時代が来た
というはてな匿名ダイアリーのエントリ。これ、私も読んでみたのですが、基本的な論旨には肯えるものの、変な記述があるのが気になります。
曰く、
もちろん好ましい方向への進化もあった。OperaがUser Javascriptを発案・実装し、FirefoxもGreasemonkeyでそれに追随。SafariもCreammonkeyを得て、いわゆるモダンブラウザユーザーは、豊かなスクリプトライフを楽しめるようになった(IEにもなんとかいう同様の機構を実現する環境はあるが、IEユーザーには敷居が高いのかほとんど見かけない)。
これは事実に反しています。
OperaにユーザーJavaScriptの機能が実装されたのは2005年3月にリリースされたOpera 8 Beta 3で、Greasemonkeyの最初のリリースは、ちょっと正確な日付はわからなかったのですが、少なくとも2004年12月より前なので、FirefoxがGreasemonkeyでそれに追随
できるわけがないんです。
では逆にOperaがGreasemonkeyをパクったのかというとそうではなくて、ここら辺の経緯はちょっと複雑なんですが、まず、Operaが最初にユーザーJavaScriptを発案したのは2002年であるとRijkが証言している点に注目してください[User JavaScript for Opera 8]。
もちろん、Rijkがでたらめをいっている可能性もありますが、そんなつまらない嘘をつくとも思えないのでとりあえず信じることにして、次にユーザーJavaScriptが初めて利用されたのはいつかというと、2003年2月にリリースされたOpera 7.01 Bork editionなんですね。
Bork editionというのは、OperaでMSNが正常に表示されない事に対して抗議するために作られた特別ヴァージョンで、MSNのページの内容を動的に書き換えてでたらめなものにするという機能が搭載されていました。これを実現しているのがユーザーJavaScriptだとHallvordが発言しています[Opera 8 beta 3 introduces User JavaScript]。
でも、まあ、実際にそれをユーザが自由に利用できないんだから、ユーザーJavaScriptを実装したと言えるのかという疑問も生じますが、特定のページを読み込んだ際に任意のJavaScriptを実行するというアイディアはこの頃からあったと言えなくもないわけで、OperaがGreasemonkeyを剽窃したわけではないということは確認できます。
以上の経緯をまとめるとこうなります。
- 2002年??月 - Opera、ユーザーJavaScriptを発案。
- 2003年02月 - Opera、特定のページで任意のJavaScriptを実行できる機能を実装。Bork editionとしてリリース。
- 2004年末頃 - Greasemonkeyリリース。
- 2005年03月 - Opera、ユーザーJavaScriptを一般ユーザが利用できるよう実装し公開。
要するに、OperaのユーザーJavaScriptとFirefoxのGreasemonkeyはどちらかが追従したとかといったわけではなくて、双方とも独立したアイディアとして生まれたものだよと、そんな結論でどうでしょうか。
蛇足かもしれませんが、
OperaのUserJavascriptは問題のあるサイトを正常に表示できるように修正するための機能としての面が強いようですね。OperaのUserJavascript独自の window.opera.defineMagic* 関数がその典型といえます。
記憶の限りでは、UserJavascriptより以前からあったbrowser.js(Opera7では既にあった)がベースになってUserJavascriptができた、という経緯だったかと。このbrowser.jsは現在も使用できますね(デフォルトはoffになっているようですが)。
というわけで、「双方とも独立したアイディアとして生まれたもの」というのは非常に説得力があると思います。
それにしても Opera 7.01 Bork edition、懐かしいです。入れてみたけどMSN Japanは対象外(?)だったという。。。
By anonymous user, # 3. February 2007, 17:20:38
そう言っていただけると嬉しいです。
「またOpera信者が言い訳がましい事を言ってるよ」とか言われるかなーなんて思ってたんですがw
あ、それとbrowser.jsはOpera 8.01からですね。
http://www.opera.com/docs/changelogs/windows/801/
By Watanabe, # 4. February 2007, 16:45:19
> あ、それとbrowser.jsはOpera 8.01からですね。
うう、申し訳ございません。見事に勘違いしていたみたいです。
私のほうこそ「Opera信者が…」といわれてしまいますね。
By anonymous user, # 4. February 2007, 18:37:36