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

読了まで:約4分


主に、​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 で​実現したい!

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

以上

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

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

と​思いますた。

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

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。