そんなもん全部エゴだよ

そんなもん全部エゴだよ
REST 信者が見ている理想的な HTTP の世界と、世界で何億人ものユーザが操作する UI のための HTML は、どちらもワークしている一方、両者には微妙なずれがある。Form は HTTP をそのままマッピングすることを想定していないし、HTTP も Form だけでコントロールされることを想定していなかったのだから当たり前と言えば当たり前だ。

サポートしてほしい開発者のモチベーションは、決してユーザのためではなく、開発者の満足(それを Ego というか DX というかは別として)のためという側面が色濃い。
この一節でなるほと、エゴ、エゴねえ………とおもった
根本的には、Webブラウザにしても、HTML にしても、CSS にしても、JavaScript にしても、HTTPにしても、全部この現代で自分が取り組んでるみたいな複雑なGUIのアプリケーションをつくることを想定して策定されたわけでは全くないというのがあるとおもう
それぞれ HTML5ES6CSS3 など潮流にマッチするよう進化というか変化というか、はしてきているが、やっぱり根幹はドキュメントを表示するためのツールキットなんだろうとおもう
ぶっちゃけエンドユーザからしてみたら、フォームから値が POST で送られようが PATCH で送られようが知ったこっちゃないってのが世界の99%だろう
昨日たまたま大先輩と話す機会があって、昔話をかなりした
幕張の Mac WorldiMac の発表をみてきた話とか面白かった
SPA って WAP の焼き直しにおもえるんだよーという話を聞いて、なんすか WAP って、と聞いてみたらまあ確かに動作原理というか、考え方はまるで SPA と同じである
大SPA時代が過ぎ去り、Edge Runtime の勃興などにより、またしても揺り戻しで古式ゆかしい SSR + Native Form みたいなアーキもみられるようになってきた中で

このまま HTML を拡張し続けるよりも、たとえば全てを Canvas にし、好きな言語を WASM にコンパイルし、好きな UI Library で画面を構築し、 a11yAOM で提供できるようにした方が、変化するユースケースに対応してスケールしていける。そう考えた彼が HTML を離れて始めたのが、 Flutter だった。

全部 Canvas にすれば、既存のブラウザ拡張Bookmarklet も動かないし、ソースから DOM を見てデバッグすることもできない。既存の Web が積み上げてきたものをほとんど投げ捨てるようなアイデアであるため、既存の Web スタックに愛のある人間からは、かなりの反発がある。

自分は FireFoxFireBug(死語)いれてウェブページをパッチするとこにかなりキャリアとしての源泉があるクチなので、今のウェブのスタックには愛着があるけれど、それから20年近くウェブを追い続けてきて、正直かつての愛が残っているかというと甚だ微妙なとこではある
特に Tumblr 最盛期は偏執的というか、今から振り返れば異常な執着心があった
キーボードショートカットから、見た目から、挙動から、何から何までパッチしまくっていた
今そこまで熱狂的にいじくるサービスというものはない
強いて言えば Scrapbox は好きだけど、何度となくクローンを作ろうとしてるぐらいで、この本家に手を入れようという気はあんまり湧かない
あとは、マインドセットとして本格的にアプリケーションを書いてメシが食えるようになって10年が経って、サービス提供側として嬉しいのは末端でパッチされることじゃなくて、フィードバックだなと気付いたというのがある
むか〜しも、脆弱性を見つけた時は報告したりしてたけど「こうの方がいいとおもいます」ってのは送ったことがなかった
それは、自分がアウトサイダーだという自覚でいたからなのか、若さ故にということなのか、なんだかわからないが
自分だけのためにコードを書く時間が圧倒的に減って、世界のために、他者のために、なーんてことは別にないんだけども、DOM やネットワークリクエストをほじくり返して自己満にふけるよりはフィードバックフォームに事象と「こうなってほしい」を書く方が効率よくおもえるようになった
この振る舞い自体は OSS でやってきたことなので、新しいことじゃないってのもあるのかも
10年代のウェブフロントエンド技術について尋ねられると体験込みでスラスラ出てくる(かつて Babel とはなんですか、Webpack とはなんですか、みたいな話を無限にしてたので)んだが、それらも恐らくエンドユーザからしてみたらどうでもいいことで、iOS のバージョン間差異で Mobile Safari の挙動が違ってて云々みたいな話もどうでもいいことなので

Google Docs は去年全て Canvas ベースの実装に移り、一般ユーザにはおよそ見分けがつかない完成度でリリースされ、普通に使われている。実装はおそらく Flutter for Web ではないが、このアイデアを否定するにはあまりに大きすぎる先行事例だ。

実際 Google Docs を確認してみると、ツールバーんとこはまだ HTML だったけど入力部分は全て Canvas になっていた
思い返せば AjaxGoogle Map がはじまりだったとおもうし、示唆的

「ブラウザ」の多様性は増えていくが、「ブラウザエンジンの多様性」は減る一方だ。今らかまた新しい「ブラウザエンジン」をスクラッチから作るのは、人類には不可能だろう

本当にそうおもう、最近 servo の様子をみる機会があったけど、がんばってほしいとおもいはするが、ウェブのオープンネスのために支払うにはコストがデカすぎるな、という感覚がある
某チャンネルで動作環境に FireFox 入ってないのは許せん!!という話をみたんだけど、エゴとしてはもちろん FireFox でも動作するように努めたいが、FireFox は FireFox で変な挙動があったりして、とてもそこにコストをかけてサポートをしたいとは実務的にはどうしてもおもえないのである
IE一強時代をみてきた者として、Chromeがそのポジションにおさまりつつあるのは微妙な気持ちになるが、コンフォーミストとしては「こっちの方がラクなんだから、致し方なし」になってしまう

Dart を書きたい気持ちはないので Flutter for Web や Blazor (は C#)にはそこまで気持ちはないけれど、もっと馴染みのある形で wasm が吐ける独自のレンダリングエンジンがでてきたら.....その時はかなりグラつきそうだな、と今からおもう