User Interface Markup Languageの提案 -HTMLを拡張してUI構築に適したマークアップ言語を作ろうぜ-
HTML + CSS + JavaScriptでUIの構築をするのはもはや一般的である.FirefoxOS,Windows8(のモダンUI),Ubuntu TouchなどHTML + CSS + JavaScriptをデフォルトのUIツールキットとして用いるOSは多い.ネイティブのUIを持つのはAndroidとiOSくらいなので逆に少数派と言えなくもない.
HTML5とCSS3の表現力はネイティブUIを超えている.ネイティブUIの優位性はゲームや3Dなどに限られる.にも関わらずwebベースのUIはネイティブUIに比べ,一段劣るものとして扱われている現状がある.
問題はHTMLのほうにある.現状のHTMLはその名のとおりHyperTextを構築するためのマークアップ言語である.HyperTextは紙メディアを模したもの.紙が動かないからといって腹を立てるのは酷だろう.
現状のHTMLはUIの構築に適しているとはとても言えない.たとえばナビゲーションバーなどはあって当たり前,ないほうが珍しいくらいなのにHTMLにはそんなタグは用意されていない.
しかしTyperTextの出自を考えるにそんなタグを付ける方が間違っているだろう.そこでHTMLをメタ的に拡張*し,UIの構築に適したマークアップラングエッジを提案する.
*メタ的に拡張とはHTMLをJavaScriptを使って拡張するという意味.具体的にはangularjsのdirectiveなどを使ってHTMLを拡張する.これによって通常のHTMLレンダリングエンジンとJavaScriptの実行環境で実行が可能になる.要はObjective-CとCみたいなもん.