お知らせ
JavaScript・TypeScript・Ruby・Lua の練習場を公開しました(全250種)
Python を整える と同じ型の練習場を4本追加し、全 250 種になりました。いずれもブラウザ内で本物の処理系(WebAssembly 版)を動かし、書いたコードも結果も端末の外に出ません。
JavaScript と TypeScript は、同じ題材で見比べる
JavaScript のページでは、「1」+ 1 が “11” になる、存在しないプロパティを触って落ちる、引数が足りない、null の扱い、という4つの題材を「実行して初めて分かる間違い」として体験できます。TypeScript のページには同じ4題材を TypeScript で書いたものがあり、実行の前に「型検査 → JavaScript への変換 → 実行」の3段階を必ず表示します。型エラーがあっても変換と実行は止めません。TypeScript が実行を止める仕組みではなく、実行前に指摘する仕組みであることが分かるためです。変換後の JavaScript では、型注釈や interface など消える部分を薄い色で示しています。
どちらも本番の安全設定の都合でブラウザ本体のエンジンではなく、独立した QuickJS(WASM)で動かしています。DOM や fetch は使えない、練習用の素の JavaScript です。無限ループは2秒で止まります。
Ruby 3.4 と Lua 5.4
Ruby は CRuby 公式の WASM 版を Web Worker で動かします。初回だけ約17MBのダウンロードがあり、2回目以降はブラウザのキャッシュで速くなります。Lua は wasmoon で、初回の読み込みは約0.3MBです。どちらも無限ループは時間切れで自動停止し、画面は固まりません。
4本とも処理系は cdn.jsdelivr.net から読み込みますが、送るのはその要求だけで、入力したコードや出力は送信しません(送信ゼロ)。