Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and W...
Search
petamoriken / 森建
December 27, 2024
Programming
660
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
fukuoka.ts #2
https://fukuoka-ts.connpass.com/event/332933/
petamoriken / 森建
December 27, 2024
More Decks by petamoriken / 森建
See All by petamoriken / 森建
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.2k
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
260
Module Harmony
petamoriken
3
1k
Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)
petamoriken
1
1.6k
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
330
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
4
2.7k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
660
DOM Observable
petamoriken
1
370
Deno に Web 標準 API を実装する / Implementing Web standards API to Deno
petamoriken
0
840
Other Decks in Programming
See All in Programming
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Contextとはなにか
chiroruxx
1
300
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
320
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
Lessons from Spec-Driven Development
simas
PRO
0
180
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
110
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
720
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
610
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.5k
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
So, you think you're a good person
axbom
PRO
2
2.1k
4 Signs Your Business is Dying
shpigford
187
22k
BBQ
matthewcrist
89
10k
Between Models and Reality
mayunak
4
330
Chasing Engaging Ingredients in Design
codingconduct
0
220
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Transcript
非ブラウザランタイムと Web 標準 fukuoka.ts #2 pixiv Inc. 森内建太 petamoriken 2014.12.27
2 自己紹介 • Web エンジニア • Deno コントリビューター • ECMAScript や Web 標準 を追うのが好き petamoriken カスタマーオペレーション
&セーフティ本部 オペレーション開発部
一人アドカレ完走しました 🎉 おすすめ記事 #1 Normative Changes とは #2 Array.prototype.sort 安定化 #3 プリミティブイテラブルを退ける 規約制定
#8 プロパティ列挙順一律化 #14 Math.sqrt 精度の正確さ保証 #24 IsRegExp の挙動変更(リジェクト)
4 様々な標準化団体によって定義される Web のための仕様 HTML, CSS, JS, WAI-ARIA, HTTP など多岐に渡る 近年ではブラウザと同じ JS コードが実行できるように Node.js など非ブラウザランタイムにも取り込まれている
👉 便利になってきたが問題も見えてきた Web 標準
5 • そもそもブラウザ/非ブラウザで求められるものが違う • 非ブラウザにどこまで正確な Web 標準 API が実装され ているのか不明瞭 ◦ やむを得ず独自拡張を入れる場合がある ◦ 特に fetch のギャップが大きい
Web 標準を取り入れることによる問題
6 「え? fetch() 入れるの? CORS は? Cookie は? FormData や
URLSearchParams は?? WPT (Web Platform Tests) は通す の?」などの、およそ想像通りの反応をみると、そこにあったイ ンピーダンスミスマッチは「Fetch を入れる」と「fetch() を 入れる」の違いととれる。Web に詳しい人は前者だと思い、 Node メンテナが求めていたのは後者だけだった。Node では名 前を変えるという案もあったが、変えたところで誰も得はしな かっただろう。 https://blog.jxck.io/entries/2022-09-30/XMLHttpRequest.html
7 サーバー、エッジといった非ブラウザランタイムで API 相互運用を実現するための W3C コミュニティグループ • minimum common API 策定 • fetch のサーバー用サブセット仕様作成 •
非ブラウザランタイムの知見を Web 標準側へ展開 👉 JS コミュニティ全体での有益化を信念に活動している WinterCG
8 WinterCG 参加者
9 あのランタイムが参加していないような……
10 Bun は JS コミュニティ全体というよりは Bun 自身が便利 であればよいと考えている(ように見える) Web 標準 API を取り入れつつも、基本それらはブラウザの ための API というスタンスで独自拡張を次々に入れている WinterCG 参加の誘いを断っている Bun
11 ブラウザで動かない “Bun 用のコード”
12 ブラウザで動かない “Bun 用のコード”
13 他ランタイムはなるべく独自機能にアクセスする方法を分 けているが Bun は Web 標準 API にそのまま拡張している Bun の独自拡張を標準と勘違いし、他ランタイムに対して 実行できないとバグ報告するユーザーが出始めている 👉 WinterCG と相反する行動を取っている Bun による Web 標準 API 独自拡張問題
14 多くのユーザーに使われるのが正義となる側面もある
15 • 非ブラウザランタイムに Web 標準 API が取り入れられ ることによる問題が見えてきた • WinterCG でサーバー、エッジ用のランタイムの相互 運用性を高めるための活動がされている • シェア争いの結果によって未来が変わりそう (TC39 や WinterCG で標準化を頑張っている Deno がもっと使われて欲しい……)
まとめ