Webブラウザはロジック実行のためにJVM、CLI、Parrotのような仮想マシンを内蔵し、その上でJavaScriptを動作させるべきだ!…というのが本日の妄想の結論です。
妄想の発端は何かというと、「プラットフォームとしてブラウザ」を正視した場合、私が一番イヤだと感じるのは「JavaScript以外に選択肢が無い」という話です。個人的にJavaScriptはVisual BasicやPHPと比較するのも失礼というくらい言語的に大嫌い(←思いっきり主観)なので、とにかく使いたくないと思っています。あ、一応補足しておきますが、一人で趣味プログラムを「書き捨て」で作るなら良いのです。が、チームプレイで数万行のソースを書いて十年以上メンテしていく状況を想像したら、あの言語は心の底から使いたくないのです。
次に、アプリのロジックを記述するもっともプリミティブな表現形式が超高級言語JavaScriptである点は、ありえないと思えるのです。超高級言語を最下層に置くのですから、直感的に処理効率が下がるのではないかと思えますし、JavaScript以外の言語以外をほぼ使えなくなると思います。というのも、もし他の言語を使うことを考えると「ブラウザ上でJavaScript以外の言語Aを使いたければ言語AのソースをJavaScriptにコンパイル(変換)する必要がある」といった話になるからです。もしJavaScriptがJVMバイトコードぐらいにプリミティブな言語であれば納得できますが、「コンパイル先はJavaScriptです」と言われると強烈な違和感を覚えます。たかだか少しばかりHTML/CSSをいじくるスクリプトだったJavaScriptを本格的に使いこなす必要に迫られる感覚は、ExcelのVBAをがんばって使いこなすような感覚にも近いように思います(形だけ)。その観点からすると、今の「JavaScriptしか使えないブラウザというプラットフォーム」は、「VBAしか使えないExcelというプラットフォーム」と同じかもしれません。
で、個人的趣味によるJavaScript嫌いと、技術者としての違和感および不都合を解消するための策は何なのか。きっとブラウザが「機械語」のような非常にプリミティブな表現系を解釈できるようになり、JavaScriptはその上で動作するようになれば良い。つまり、そう。ブラウザ自身がJVM、CLI(.NET処理系)、あるいはParrotになれば良いのです!…ま、いくらHTML5が盛り上がっても、そんな話は実現しないんだろうなぁ…。