<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite xml:lang="ja">モンキーパッチ - Wikipedia</cite>
( (<time>2013-11-24 16:54:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%91%E3%83%83%E3%83%81">http://ja.wikipedia.org/wiki/%E3%83%A2%E3%83%B3%E3%82%AD%E3%83%BC%E3%83%91%E3%83%83%E3%83%81</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <cite>Monkey patch — Anne’s Blog</cite>
( (<time>2014-02-13 11:39:23 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://annevankesteren.nl/2014/02/monkey-patch">http://annevankesteren.nl/2014/02/monkey-patch</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite xml:lang="en">Where is the spec? · Issue #481 · w3c/webcomponents</cite>
(<time>2016-04-26 18:31:29 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webcomponents/issues/481">https://github.com/w3c/webcomponents/issues/481</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en"><strong>[</strong>css-ui-4<strong>]</strong><strong>[</strong>css-sizing<strong>]</strong> Moving box-sizing to the right spec · Issue #1906 · w3c/csswg-drafts</cite>
(<time>2017-12-08 15:44:56 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/csswg-drafts/issues/1906">https://github.com/w3c/csswg-drafts/issues/1906</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 
<cite xml:lang="en">The WHATWG Blog — Retro-specifying fetch/performance</cite>, 
March 17th, 2022,
<time>2023-10-17T06:07:12.000Z</time>, <time>2023-10-17T07:36:54.084Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://blog.whatwg.org/retro-specifying-fetch-performance">https://blog.whatwg.org/retro-specifying-fetch-performance</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> 
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web Performance</anchor>
は現代<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブ標準</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> 世代およびそれ以後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブ標準</anchor>仕様群)
の中で <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSP</anchor> と並ぶ前時代的<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>の悪習を今に伝える負の遺産だったのですが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSP</anchor> の方ではもう何年も前、日本でいうと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平成</anchor>の頃に解消されていました。
ところが Webperf の方はなんだかんだの事情があって令和4年まで引き伸ばされていて、
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;5</anchor-internal> 記事中で解説されるように実害が出ていましたし、
後に伸ばせば伸ばすほど、解消のために必要なエネルギーが増えていくという悪い状況だったのです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>は悪だというのは現代<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブ標準</anchor>の世界では基本中の基本で、
それこそ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WF2</anchor> &amp; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WA1</anchor> という<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>から始まって、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>をやめて「本体」に進化していくという歴史を経てきているのですけど、
初期の頃にはまだ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>の弊害が業界でも十分に理解されていませんでしたし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>が駄目だと言われても正規の方法でやるだけの環境がまだ整っていなかったんですね。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> 
Webperf の例でいうと <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Fetch</anchor> がまだしっかり仕様化される前の段階から開発が始まっていましたし、
開発が一段落したあと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>を本仕様に吸収していく業界の仕組みも未整備でした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> 
今では <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WICG</anchor> なり個人や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ウェブブラウザー事業者</anchor>の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">GitHub</anchor> リポジトリーなりで開発を始める時点では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>形式の仕様案を用意して、
一通りの準備が終わって事業者間の一定の同意も得られたところで本仕様に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>部分を還元していくという作業フローが確立しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> 
この方法が回り始めたのが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平成</anchor>の終わり頃で、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSP</anchor> の他にも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Fetch</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> への追加機能 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>) を開発しまくっていた
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebAppSec</anchor> 方面と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WHATWG</anchor> の協業がその走りでした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> 
外野から眺める分には、そんなやり方はしなくても <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WHATWG</anchor>
の本リポジトリーのブランチなり、 fork した git リポジトリーなりで作業して、
同意したらマージ、の方が作業も少なくて済むのではないか、
と思ってしまうのですが、
業界には業界のしがらみというか、
思惑みたいなものもあるみたいです。
他のグループのブランチで開発するよりも独立した <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WG</anchor>
の作業項目としてやる方が当事者にとって開発しやすいとか、
追加機能本体の他に説明も付加した仕様書がある方が説明しやすいとか、
新機能には機能名とそれを冠した仕様書がないと市場にアピールしづらいとか。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 
また、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Fetch</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CSS</anchor> など関連する仕様が複数の仕様書や複数の団体にまたがっているケースも多いので、
開発初期段階では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">猿パッチ</anchor>を集約して1箇所ですべての仕様案、すべての議論を追いやすくするという動機もあるようです。</p></body></html>