これはなに?
リンク集です。Blazorをやっていくべきことはわかった。WebAssemblyがとても面白い技術であることもわかった。ただ、生半可な理解では「WebAssemblyはJSより速い(ドヤ)」みたいな言い切りをしてしまいかねないほど、正確な理解が難しいものであることもわかった。
外野から眺めて満足するだけならまだしも、実際に当事者としてBlazorで開発をやっていくにあたってはそれでは困る。間違った認識からは間違った行動が生まれてしまうし、何より「知っている」ことが失敗を防ぎ改善策を生む原動力になるわけで、だったらいろいろ調べてできるだけ正確な理解を目指した方が結局は近道になる。
というわけで、自分の勉強のためにリンク集を構築していくことにする。
WebAssemblyの技術解説
-
A cartoon intro to WebAssembly
- 2017年2月の記事。MozillaのRustおよびWebAssemblyの開発者Lin Clarkによる6つの連続記事。
- JavascriptとJITの歴史、コンパイラとインタプリタの特徴、JSの行っている最適化手法とその限界、コンパイラとアセンブリとバイトコードと中間表現(IR)、.wasmへのコンパイルとJSからのロード、.wasmとスタックマシンの関係、JSとWebAssemblyの実行プロセスの比較、(2017年時点での)ブラウザ上でのWebAssembly実行の高速化や追加されていくだろう機能の展望、などなど盛りだくさん。
- 2017年時点の記事なので、この当時想定されていたことがどれくらい実現され、まだ実現されていないのかを確認するのが良い。
-
WebAssemblyに注目
- 2022年1月の記事の日本語翻訳。Yale大学のCS学部の学生Harshal Shethによる記事。
- WebAssemblyについてコンパクトにまとめつつ、どのようなプロダクトに使われているか、使用例についても言及している。WebAssemblyが単にWEBフロントエンドで有効なだけでなく、仮想化やコンテナ技術に類する技術として発展するという予想や、パッケージマネージャなどが整っていないことなどから言語を超えた相互運用にまでは至っていない現状などについて言及している。
- WebAssemblyには「高速で」「様々な言語からコンパイル可能で」「実行環境をブラウザに限定しない」という性質があり、想像以上に高いポテンシャルがあることを示している。もう数年経てば具体的なプロダクトとして世に出てくるだろう可能性が感じられ興味深い。
Blazorと他のJSフレームワークの比較
- 【2023年版】Blazor vs React 比較 - どちらを選ぶべきか?
-
【2023年版】Blazor vs Angular 比較 - どちらを選ぶべきか?
- 2023年2月の記事。BlazorとReact、BlazorとAngularをそれぞれを比較している。
Blazorの技術解説
-
マイクロソフト、.NET中間言語をWebAssemblyにコンパイルする「Jiterpreter」をBlazor WebAssemblyに搭載へ、.NET 8で
- 2023年4月の記事。
- BlazorはWebAssemblyで.NETランタイムを実装し、その上でC#などの.NETバイナリを動かすか、AOTコンパイルによりWebAssemblyを生成するか、の2択だったが、.NETランタイムから「インタプリタのバイトコードを小さなWebAssemblyコードに置き換える」ことで最適化するJiterpreterという技術を.NET8から搭載する、という内容。