「ScripSharp遊び・DOMノードを追加するで書いたJavsScriptにトランスレートされるC#コードがこれ」
Element p = Document.CreateElement("p");
p.TextContent = "new para element";
Document.Body.AppendChild(p);
「それで?」
「しかし、世間はVS11βで騒がしい」
「そうだね」
「なので、VS11も少し使ってみた。JavaScriptのMetroプロジェクトも作成できるようになったので、簡単なテストを書いてみた」
「それで?」
「動いた要点がこれ」
var x = document.querySelector("#idx");
var y = document.createTextNode("hello");
x.appendChild(y);
「あれ? どことなく似てるぞ」
「書かれた内容は違うが、documentオブジェクトからノードをクリエイトしてアペンドで追加するスタイルは同じ」
「えー」
「我が友(客)を守り、我が道を行く、と思って試行錯誤して出た結果と、最新のトレンドが一致したのだからね。我が道は間違って無かったと納得したよ」
「でも、MSそのものが既に傍流じゃない」
「ノンノン。HTML5の潮流は、AppleもGoogleも巻き込んだ全体的な流れだよ。MS単体で動いてる流れじゃない」
「えー」
時代は巻き戻った §
「もう1つ興味深い点がある」
「それはなんだい?」
「VS11でJavaScriptプロジェクトを作成させたらこんなコードを含むコードを生成しおった」
「何か意味があるの?」
「ECMA-262 5.1のstrictモードの指定だ」
「それって何?」
「たぶんおおざっぱに言えば昔のVisual BasicのOption Explicit Onみたいなものだな」
「変数宣言の強制?」
「他にも機能がある」
「へー」
「しかし、『スペルミス1文字が分からずバグが見つからない』なんていうアホらしい問題が起きる昔のBASIC言語と同じ欠陥を持ったJavaScriptが、同じような宣言で乗り切ろうとするなど、まさに時代は繰り返しておる」
「はははは。でもきっと当事者は画期的な新機能だと思って胸を張ってるよ」
「やむを得ない。VB1.0が出た頃の当時を知る人はMS社内にすらほとんど残ってないだろう」
「ぎゃふん」
まとめ §
「というわけで、まとめ」
「うん」
「Metroなんてやめだ、と思ってHTML5道に邁進した結果、いつの間にかMetroアプリのソースもHTML5ベースでそっくりに書けるようになっていた。あれまあ」
「離れたつもりで合流しているわけだね」
「そうらしい」
「じゃあ君としてはどうするの?」
「昔、欠陥持ちのVisual BasicのソースをいつもOption Explicitから書き始めたように、欠陥持ちのJavaScriptも"use strict"で書き始めるかな」
「欠陥持ちでもJavaScriptを使うんだね?」
「だってしょうがないだろ? 現にお客さまの皆々様に普及している環境を1つに統合する方策はそれしかないんだから」
「それは理想より重要?」
「まず動くこと。話はそれからだ」