generated at
JSConfJP2019 day1

一度復習したが、さらに復習が必要なものは「#WIP」を付けといたmrsekut




ライブラリ、フレームワーク、AltJSの利用状況などのアンケート結果の紹介
今年のSurvey
誰でも参加できる
去年のやつの結果が見れる
CSS版
ElmもReasonも認知度がそもそも低く、触ったことがある人は数%しかいない
グラフは下から
赤: 触ったことがあるし、今後も触りたい
橙: 触ったことがあるが、今後は触るつもりはない
青: 聞いたことがあり興味がある
水: 聞いたことはあるが興味はない
灰: 聞いたことがない
ちなみにTSは60%ぐらいが「使ったことがある」ref
フレームワークではReactはぶっちぎり ref
Gatsby, Next ref
ビジュアル的なスライドがすごかった
英語はゆっくり話してくれてたのでまだ聞き取れた
このサーベイの内容は毎年誰かがQiitaにあげてるのを見たことがあるので2019年版もそれ見ようかなmrsekut



t_wadaさんのJSのASTをいじる話
JSコードからASTを抽出(parser)→ASTをいじる(traverse)→ASTをJSコードに戻す(unparser)
感想
何に使えるのかが知りたかった
テストとかかな、ライブラリ作成か、なんの?
t_wada氏らが開発
内部はASTを使いまくりらしい
ネットスケープ作った人
grepは文字列を扱う
コメントかどうかの判断できない
bananaのネタのやつをASTでみてみると
b+a+(+a)+aになっていることがわかる
↑intにしようとして無理なのでNaNになる
JSのASTを触るに移したmrsekut



発表射はBabelのメインメンテナ
OSSを使っているエンジニアは99%を超える
OSSを仕事とするのは難しい
なんでOSSをするのか?
→coolだから
お金の話
OSSは当たり前ではない
当たり前となって強い言葉を使ったissueが立つこともある
>Open source is lens thorugh which I see the world
>Open Source as a Mirror



勉強不足すぎて全然理解できていない #WIP
@webseals
新聞社、Cを書いてる
jsのパフォーマンスの話
JavaScriptのLayerごとの最適化
product
メモ化、キャッシュ
runtime
非同期処理、code fetching
engine
inline casche
SMI/heapNumber
packed/holey
この辺わからんmrsekut
micro-optimization
jsではあまりやらんでもいい
すでに速いので
runtime,engineが頑張っている
server side
IOがボトルネックになりがち
同期的なIOは避ける
parseとかは非同期には実行できない(?)
nodeのStream API
pipeとかあるのか
renderToNodeStream
Reactに16からはいった
Chrome独自にeventloopがある
code casheing
一旦コンパイルしたもの次使うときはそれを使う、再パースしない
↑パースとコンパイル
preloading scripts
先にpreloadしてほしいものを指定しておく
link rel="preload"
fetchした時点でパースとコンパイルをする
まだ実行しないのに
だから、使われるときはあとは実行するだけの状態にできる
idling
idle until urgent
必要になるまで待て
requestIdleCallback
cancellIdeleVallback
idlelizeというライブラリがある
phillipwalton.com/articles/idle-until-urgent



wasmの話
fuji goroさん
趣味で@msgpack/msgpackを作ったときの話に基づく
CDNの会社のFastlyで働いている
ネイティブコードと言うよりはjvmっぽい
wasmはバイトコードとその処理系の仕様
emscriptenでC/C++→は2012年頃
jsでCPUのエミュレーションをする
速度感
class 3はclass 1の3倍遅い
クラス3のところは企業が金をつぎ込んでちゃんとしてるので速い
v8の実装にお金をかけたのでjsは他のスクリプト言語より速い
wasmは「クラス5の中では速い方」ってぐらい
クラス1には及ばない
製品の一部をwasmにしたい
扱える型が数値だけなので、小さい単位で色々やろうとすると結構辛い
ASの話かな
wasmはリトルエンディアン、jsはホストに依存するのでつらい
rustとかcのほうが楽そう、
AssemblyScriptはランタイムが小さめ
↑は文法はtsだが、書き味はC
Bynarienで最適化
ベンチマーク
データサイズが小さいと普通のjsの速い
データサイズが大きくなるとwasmのほうが早かった
これは常に確実に
20~50%ぐらい速い
js→asのつなぎこみは大変そう
v8
-no-opt
最適化を無効にするオプション
これやってベンチマーク取るとだいぶ差がついた



Denoらへんに書いた




@koba04氏の95%ぐらい英語で、ちょこちょこ日本語での補足も入った発表形式だった
宣言的UIに書いた
後半全然わからん

Sponcer Talk
サイボウズ
mediba


pre-fetchとかができるやつ?
よくわからんかた..


渋川よしき氏の発表
今朝スケートの大会に行き、家族全員メダルをもろたらしい
自分でタグを作るやつ
昔からあった技術
Mithrilに書いた
MS HTML Component
JavaScript page components
全然ヒットしねえ、なんだこれ
Web Componentsに書いた
Reactと併用できるの?
できるならいつ?
ライブラリとしてあるのか
divと同じようにそのタグで使える



キャッシュ難しい問題
サービスワーカー
http
Cache-Control
CDNのきゃっしゅ



Node.jsコンパイラのstructure
LLVMはレジスタマシン
wasmはスタックマシン



WebDINO Japan (元Mozilla Japan)
OSSの生みの親のような会社
のCTOの人@dynamitterさんの発表
ライセンスのMIT,BSDとかしらないなmrsekut
OSSのライセンスの本あったよなたしかmrsekut
誰も守ってない規約になんの意味があるんだ?
npm license checkerというライブラリがある