HTML5の嘘

HTML5 (今は HTML Living Standard) が登場した時、HTML5 では「アプリ」や「ゲーム」を作れると宣伝されました。HTML5/JavaScript で作成した「アプリ」には次の長所があると宣伝されました。

  1. 「アプリ」がPCでもスマートフォンでも動くから、開発が楽になる。
  2. 「アプリ」をウェブ上で公開できるから Google や Apple から自由になる。
  3. canvas や WebGL を使用してプラットフォーム非依存のゲームを開発できる。

2022年現在、そこまで良い物だと感じません。

1

1つ目、「アプリ」の開発が楽になるのは本当です。ただし本物の HTML/CSS/JS で作ればの話です。React 等のフレームワークや、NodeJS (npm) を使用すると複雑になります。多くの「アプリ」ではフレームワークや NodeJS を採用します。

2

2つ目、スマホ向けの「アプリ」を作るなら、現実的にはネイティブアプリの中に WebView として埋め込む事になります。Android の場合は「野良アプリ」や F-Droid でアプリを公開できますが、多くの人は Google のストアからアプリをインストールします。iOS の場合は Apple のストアしかありません。だから Google や Apple から自由になりません。

WebView を使用しないで、ウェブ上で HTML5 の「アプリ」を公開しても、「アプリ」を実行するためのブラウザーは Firefox 以外には「GoogleのChrome」「AppleのSafari」だけです。結局、Google や Apple に依存します。

3

3つ目、CANVAS や WebGL でゲームを開発できますが、JSのガーベージコレクションのせいで動作が不安定です。また、JSでキーボードやマウスの情報を取得するAPIが複雑すぎるから、C等の他の言語で作る方が簡単です。特にPC/スマホの両方に対応するには沢山のコードが必要です。

こんなに大変ですが、HTML5 で作るゲームは結局ブラウザゲームです。遊ぶたびにサーバーからダウンロードが必要で効率が悪いです。しかも多くのPCユーザーはOSネイティブのゲームしか遊びません。だからプログラミングの勉強にはなりますが、HTML5 で作る利点は少ないです。

それでも CANVAS はフィンガープリントに使用できます。それなら CANVAS は無くても良いです。

4

この通り、HTML5 はかつて宣伝された程、便利ではないみたいです。本当に便利なのは、むしろ、HTML5 と同時に現れた CSS3 かもしれません。HTML5/CSS3 で作られたサイトを HTML5 無しで再現する事は簡単ですが、CSS3 無しで再現するのは困難です。

余談

このサイトは HTML i18n で書きました。1997年の規格ですが機能は充分です。HTML5 や HTML Living Standard で HTML の規格を何度も更新する意味とは……