#2 WASM on 現場



likr0(尾上) さんをゲストにお迎えして WebAssembly 周辺について話を聞きました。
mizchi がちょっと酒入って酔ってる + 83さんの音声の収録を失敗したので、思い出しながら後付で別撮りしたという感じになってます。

タイムテーブル

  • 00:00 挨拶とゲスト尾上さんの自己紹介
  • 00:58 尾上さんをゲストに招いた経緯
  • 02:07 WebAssemblyはなぜ必要とされたか
  • 04:40 「WASMはもう使えるようになってきたなっていう印象を持っている」
  • 05:23 WASMはasm.jsよりパース速度、実行速度を改善した
  • 06:11 WASMとasm.jsを比較すると
  • 08:20 ES Modulesのローディング周り
  • 08:46 WASMをどんなものに使った?
  • 09:55 SIMD.js
  • 10:47 WASMとJSでは線形代数ライブラリの実行速度の桁が違う: ベンチマークとってみた https://likr.github.io/matmul-bench/
  • 11:50 巨大なWASMライブラリのファイルサイズ問題
  • 13:33 main関数からすべて他の言語で書いて最適化する
  • 15:18 WASMの現実的な用途
  • 16:02 Virtual DOMのWASM実装
  • 16:45 WASMを動作させる環境とブラウザによる実装の差
  • 17:35 Emscripten、大統一抽象言語LLVM IR
  • 19:19 手書きasm.js
  • 21:23 手書きWASMとWAST
  • 23:40 WASMの当初の目論見と現在の高速さ
  • 24:21 もし将来JavaScriptに型が付いたらWASMと親和性が上がる?
  • 27:00 AssemblyScript
  • 27:33 パフォーマンス・チューニングの現場でのWASMの選択肢
  • 29:53 GC Integration
  • 30:07 あらゆる言語でWebを書く未来はくるか: 今wasmがかける言語 https://github.com/mbasso/awesome-wasm#languages
  • 32:13 JSの言語仕様でどうしようもないこと
  • 33:10 Rustはメジャーな言語
  • 36:25 Quasar
  • 37:13 Universal JavaScriptに対するUniversal(好きな言語)という発想
  • 38:30 「人類はJavaScriptを手放すべきだ」
  • 39:54 Dartの失敗から学ぶことは多い
  • 40:45 WASMは標準として生き残り続けるか
  • 41:43 将来どんな言語になってもWeb APIに熟知しといたらいい
  • 42:04 WASMのスレッドの扱いとWorkerの関係
  • 43:25 Vulkan, WebGL, Metal, Web GPU
  • 45:30 ブラウザsandbox内の世界とWASM
  • 47:19 JavaScriptは難読化されても頑張れば読める、WASMは?
  • 49:40 facebook/prepack
  • 51:50 JavaScriptを事前にコンパイルすれば高速になるか?
  • 52:37 Rustは楽しい
  • 53:30 mizchiのやってみたいこと
  • 54:28 ライブラリ読み込みの工夫
  • 56:10 いまWASMに足りないものはあるか
  • 56:46 EmscriptenのEmbind
  • 57:25 複数のWASMモジュールとグルー言語としてのJavaScript
  • 58:36 光の速度はどうにもならない、どうやって読み込みを速くするか、あるいはPWA
  • 60:04 分割が難しいなら全部WASMでやるか
  • 60:50 Emscriptenの機能と学び方
  • 62:40 エンドトーク 我々は今のうちに何ができるか

#1 Awesome Vue



kazupon さんをゲストにお迎えして Vue.js 周辺について話を聞きました。

タイムテーブル

  • 00:00 mizchi挨拶
  • 00:47 kazponさん自己紹介
  • 01:34 どういう形でVue.jsを始めたのか
  • 03:10 これまでのJSのデータバインディングとVue.js
  • 05:34 AngularJSを選ばなかった理由
  • 06:20 Vue.jsの独自のテンプレートシステムとコンポーネント
  • 10:24 Vue.jsの隆盛とReactの隆盛
  • 13:00 Vue.js周辺におけるJavaScriptエコシステム
  • 16:37 採用事例について
  • 17:32 kazuponさんのVue.jsに対するコミット
  • 19:57 Vue.jsを知るならこの人を追っておけ
  • 20:50 サーバーサイドVue.js, Nuxt.js
  • 21:51 テンプレートエンジンとしての立ち位置、React JSXについて所感
  • 25:20 Vue.jsのCSSまわりについて
  • 28:55 フロントエンドの分業制(アーキテクチャ、マークアップ)
  • 30:51 PHPのフレームワークLaravelでVue.jsが採用
  • 32:49 Vue.jsにおけるデータフローまわり、データ変更検知まわり
  • 37:17 Vue.jsのデータバインディングについて実装詳細の話
  • 38:24 大きいプロジェクトでのVue.jsのつらい点
  • 40:20 レンダラーとシングルトンなデータストアに対する意識
  • 42:55 Web Components
  • 45:05 Vue.jsのTypeScriptサポート
  • 46:35 Migration Helper - フロントエンドにおける破壊的変更
  • 48:10 レガシーなノウハウとしてのDispatch
  • 49:10 Vue.js Meetup
  • 50:22 私たちはなぜReactではなくVue.jsを選んだのか
  • 53:30 エンドトーク kazuponさんの意気込み

#0 React vs Angular - あるいは Functional JavaScript



mizchi と armorik83 で このラジオの趣旨, React, Angular, SSRの是非, Rx, Redux, JavaScript における関数型プログラミングの今後について話しました。

  • 全52分
    • 00:00 現場.fmを立ち上げた経緯と自己紹介
    • 03:06 SPAはフロントエンドの主流なのか
    • 05:10 サーバーサイドレンダリング事情
    • 09:10 SSRって結局必要なのか
    • 14:02 Angularの提供するAPIの細分化
    • 15:40 RxJS, TypeScript
    • 24:50 Functional JavaScript
    • 28:25 Flow
    • 30:10 Reduxとmiddleware
    • 35:14 AngularでのRxJSとDIの関係
    • 37:50 Angular Componentの現場
    • 39:27 シンプル化への揺り戻し
    • 41:47 魂が震えた記事と技術情報の輸入
    • 42:45 日本と海外の情報ギャップ
    • 44:40 海外からの情報の仕入れ
    • 46:23 React Router v4のBreaking Change
    • 50:11 エンドトーク(Splatoon 2)

感想は Twitter または Mastodon の #genbafm まで。


反省とか。

  • 初回なんで段取りが悪くて、とくに序盤の話の流れがよくない。
  • React と Angular はお互い雑な理解ですが、それ以外のJSの共通部分に関して、かなりコンテキストが圧縮されてます。
  • 部屋のせいでリバーブが掛かったぽくなってます。次から修正したい。