別記事で CSS の詳細度が消えて欲しいって愚痴を書いていて そういえば JavaScript も互換性を理由にイマイチな仕様が色々残ってるなと思いました
ウェブ関係は ES2015 から JavaScript が大幅に進化して その他ブラウザの WEB API も進化してきました
ですが 古いページを見れるようにという理由で互換性を重視するので イマイチな仕様が残ったりです
廃止とされた機能もありますが 昔からある機能だと削除されることは全然なくて形だけのあまり意味がないものです
新規作成時に使わないほうがいいというだけで 消されることがないのはほぼ確定だし 新しいのを覚えるのも面倒だからと使い続ける人もいます
単純に使わなければ自分には関係ないというタイプの機能ならまだいいですが CSS の詳細度みたいに絶対関わってきて回避のために面倒を強いられるものもあります
typeof で null が "object" になるのも 見方を変えればおかしくはないのでしょうが 使うときには不便でしか無いです
直接 CSS や JavaScript を書かずに他言語で書いて CSS や JavaScript を生成するのも一つの方法ですが 手間が増えてますし ブラウザで直接動くわけじゃなく間に余計なものを挟むことになって気が進みません
型が欲しいから TypeScript を使うとか 関数型言語が好きだから Elm を使うとか そういうポジティブな理由でならまだいいですが JavaScript でいいけど 互換性のために変な仕様があるのが嫌だからというネガティブな理由では alt 系を使うのは気が進みません
特にその理由が昔のページを表示するために互換性を残すというのも不満に感じるところです
その他言語だと古いバージョン使えばいいという理由で 互換性を捨てられます
変化が大きすぎると Python みたいに移行が進まないとかはあるかもですが その他言語でもメジャーアップデートで徐々に古い機能が使えなくなってるのはよく見かけます
古いページを表示するためと言って互換性を残しているといつまで経っても古い機能を引きずることになって 他言語に比べると発展が妨げられます
最近ではウェブ以外でも Electron だったり WebView だったりでローカルアプリなどでも使われてますし いつまでも過去の負債を残してないで綺麗にして欲しいところです
そもそも更新もされない過去のサイトなんて どれだけの人が見てるんでしょうか
Google 検索でも古いページはめったに出てこないです
互換性を切ったとしても古いサイトを見る時は IE の互換モードでも使えば良いです
IE の完全終了をウェブの一区切りとして廃止機能や一貫性の無い部分を消して新しいものにしていってくれるといいのですけどね