規格に応じたコードを書いて動かしてみる。
動作方法
とりあえず2通りある。
テキストエディタ+ブラウザ
index.html
<!DOCTYPE html> <meta charset="utf-8"/> <link rel="stylesheet" href="style.css"> <script src="main.js"></script> <h1>見出し</h1> <p>本文。</p>
style.css
@charset "utf-8"; body { background-color: #0000FF; /* 背景色 */ color: #FFFF00; /* 文字色 */ }
main.js
window.addEventListener('DOMContentLoaded', async(event) => { console.log('こんちは世界!'); // コンソールに出力する alert('ようこそJavaScriptへ!'); // アラートとしてダイアログ出力する });
ブラウザ+プレイグラウンド・サービス(CodePen, jsFiddle)
See the Pen minimu-code-html-css-js by ytyaru (@ytyaru) on CodePen.
コードは以下のとおり。
HTML
<!-- コメント --> <h1>見出し</h1> <p>本文。</p>
body { background-color: #0000FF; /* 背景色 */ color: #FFFF00; /* 文字色 */ }
console.log('こんちは世界!'); // コンソールに出力する alert('ようこそJavaScriptへ!'); // アラートとしてダイアログ出力する
HTMLには<body>
内の要素しかかけない。<head>
内のコードも書いてみたいときはローカル環境で試すしかない。たとえば<title>
要素に書いたテキストがブラウザのタイトルバーに表示するかどうか等。
WASM
WASMについては初心者が手を出すにはハードルが高い。最小コードを書くためにはビルド環境を用意する必要がある。なぜならWASMのコードは直接書くのではなく、さまざまなプログラミング言語から生成されるコンパイル済みのバイナリファイルだから。
- WebAssemblyScript(TypeScript)
- C/C++
- Rust
- Go
それぞれの開発環境をインストールする必要がある。今すぐ試すことはできないため後回し。
どの言語で開発するのがよいか。WebAssemblyScriptがよいだろう。これからJavaScriptを勉強しようとしているので、そのalt言語であるTypeScriptも学びたい。さらにTypeScriptをもとにしたWebAssemblyScriptでWASMをビルドできるらしい。よって、JavaScriptを学習しつつ、もっとも学習難易度が低くWASMをつくるためには、以下のような学習順になる。
- JavaScript
- TypeScript
- WebAssemblyScript
これだけでも大変そうなのがわかる。今まさにJavaScriptの最小コードを書いたばかりだもの。
所感
たしかに動いたね。でも、超つまんなくね? なんかもっとスゲーことできないの?
JSのライブラリを使ってMMDを表示できるらしい。けれど色々ググったが私のブラウザ環境で表示できるDEMOがなかった。
OpenJTalkをWASMでビルドしたプロジェクトがあった。
JSライブラリを使えばゲーム開発もできる。とくにティラノスクリプトが簡単そうにみえた。
WASMならゲームのエミュレータまで作れるらしい。従来のJSでは考えられないほど高速処理ができるのだろう。一応ネイティブアプリと同等と謳っているからね。
wasmBoy DEMOにアクセスして以下手順をふむとゲームできる。
- 画面左上メニュー
Open
→Open Source ROMs
→tobu tobu girl
をクリックする - 画面左下
Playback Control
タブのPlay
ボタンを押す - 画面左上
Player
タブにてゲームが始まる Enter
キーで進む- 方向キーでジャンプし、Zキーで多段ジャンプする