Chapter 01

フロントエンドの現状

NoboNobo
NoboNobo
2020.10.03に更新

フロントエンドフレームワークは現状、

  • React
  • Vue
  • Angular

の御三家が主流ですが、WebAssembly(以後wasm)が登場&メジャーブラウザサポートが進んだことでwasmによってフロントエンドを構築するという流れが生まれつつあります。
これら御三家もwasmを併用する構成で作れる仕組みなどを用意しつつありますが、JSで育てたライブラリなのでwasmで作り直すわけにもいかずといったところ。

そんな中でGoは2018年リリースのバージョン1.11にて正式にwasm出力をサポートしました。
GoのwasmサポートはGopherJSの成果から派生したこともあり、効率はともかくGoの資産とJSの資産を双方利用可能という特徴を引き継いでいます。

現状公式にスタティックにwasmを出力できる処理系は以下の5実装が主流です。

  • emscripton(C/C++)
  • AssemblyScript(TypeScript)
  • Rust
  • Go
  • TinyGo(Go)

以上の処理系を基礎としたフロントエンドツールキットが目立たないところで戦国時代を迎えています。この乱戦に参加すべく、Goのwasm出力でフロントエンドを記述するツールキット「SpaGo」を作りました。