Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and W...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
petamoriken / 森建
December 27, 2024
Programming
690
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 / 森建
Security issues being discussed on Web Platforms
petamoriken
0
1k
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
240
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.3k
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
290
Module Harmony
petamoriken
3
1.2k
Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)
petamoriken
1
1.6k
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
350
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
4
2.8k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
690
Other Decks in Programming
See All in Programming
FreeBSDでZabbixを動かす
kenkino
0
310
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
140
Are APIs Still Relevant in the AI Era?
soyuka
0
290
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
730
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
430
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
320
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
300
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
560
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
230
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
150
Building an Out-of-Order CPU
latte72
1
790
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building Adaptive Systems
keathley
44
3.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
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 がもっと使われて欲しい……)
まとめ