カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

Web Application に HTML を用いなければならない、と言う前提は実はない

主に、mizchi さんの、

と言う記事と、そのブコメである

を読んで思った事を書きます。

我々には XML が有るじゃないか!

上記の記事に対するブコメで、

そもそも HTML を Web Application を作るのに使ってるのが間違い

という様なコメントをいくつか見かけて、

あれ、そもそも HTML 無しで Web Application って作れたんだっけ?

と言う感じになって調べてみたんですが、色々見て周った結果、

XML + CSS + xhtml:script と言う辺りを使えば、 別に HTML を使う必要な無いんじゃね?

と言う結論になりました。

もっとも、これは 技術的には可能だろう と言う範囲でしか無いんですが、セマンティック Web という文脈を排除した Web Application を作る のであれば、 別に HTML 文書 をリッチなアプリケーション UI を作る土台として使う必要はなく、UI には オレオレ定義な XML を CSS で肉付けし、 後の動的な要素でスクリプトが必要になる部分にだけ xhtml:script 要素を引っ張ってこれさえすれば、モノは作れる、と僕は思います。

とは言え、これがすべてのブラウザ環境で動くかどうか、については 試した事も無い ので、 実際に実用出来るかは不明 (特にモバイルなど) ですが、まあ、XML 規格的には可能っぽい事だけは確か です。はい。

Web Application 開発に本当に必要なモノ

それで、ここまでの話を考えていた過程で、

そもそも Web Application を実現する基盤として 本当に必要なモノ とは何だろうか?

と言う事に思いを巡らせていたのですが、僕が考えるに、Web Applciation に本来必要なモノというのは、恐らく、

  • UI を定義し表示するための Renderer
  • UI の動作を実装するための Runtime
  • 上記二つを安全に実行するための Sandbox

の三つで、これらを実現できる環境さえあれば、別に HTML をWeb Application 実行基盤として利用する必要はない、 と僕は思う訳です。

ただ、現実問題として、上記の三つを満たし、かつ、すべてのブラウザ環境や、あるいはクローラーが解釈出来る共通言語的な基盤、 と言うのが、実際には HTML ぐらいしか存在しない、というのが、今の Web の現状な訳で、 その辺りについては、まあ、なかなか一朝一夕に解決するのは難しいよね、と僕は思います。

また、僕がもし、今の Web の現状に合わせて XML ベースの UI 記述環境を定義するであれば、

  • UI のレイアウト定義に CSS を用いる
  • XML から直接 Javascript なり WebAssembly なりを関連付けて実行出来る様にする
  • DOM Alternative っぽいので XML Tree を出力出来る様にする
  • そして上記以外の xml 要素とか Scripting API は極力定義しない

という感じにするかなーと言う感じですね。はい

Web Application を解釈するだけのブラウザは実現可能か

で、話としては最後で mizchi さんの記事の最初の方に戻るんですが、mizchi さんの記事の中で、

(Web ブラウザの開発への) 参入障壁が大きく民主的ではない

という問題提起があるのですが、これについて Web Applciation という文脈 において思うのは、 先に示した、

  • UI を定義し表示するための Renderer
  • UI の動作を実装するための Runtime
  • 上記二つを安全に実行するための Sandbox

の三つを満し、かつ、

  • Desktop
    • Windows
    • macOS
    • Linux
    • *BSD
  • Mobile
    • Android
    • iOS
    • Windows Phone

という、現在メジャーな環境で動く環境をモノが必要になってくると思うんですが、 Desktop 環境と Android はまだ良いとして、 iOS とか、 外部リソースを解釈して実行するランタイム系のアプリは確か Reject されていたハズ……なので、 現実にその手の何かを作るのは、まあ難しいような気がします。特に iOS だとね。

あと、この手のヤツって、やってる事、したい事自体としては、既存の Product に例えると、

Qt を Web で実現したい!

みたいな話なのでは……と思ってしまったので、まー現実的には色々厳しいよね、と思いました。

以上

なんと言うか、ここまで書いてて、

なんかこれ、車輪の亜種の再開発みたいな話だなぁ……

と思いますた。

ま、話も長くなって来たし、今日は外出する予定もあるので、今回はこの辺りで失礼します。