解説記事
来歴と理由
結論→当時の状況と競合→決定打→今への影響。俗説でなく、確かな出典に基づいて。
なぜ11行のコードが世界のビルドを一斉に壊せたのか
2016年、たった11行のnpmパッケージ「left-pad」の削除がBabelなど著名プロジェクトを巻き込みビルド不能を連鎖させた。犯人は行数でなく依存の連鎖構造にあったと分かる。
なぜCookieが生まれたか
ショッピングカートが動く理由をたどると、ステートレスなHTTPに状態を足す発明にたどり着く。Cookie誕生の経緯と、追跡への転用・廃止の流れまで一気に掴める。
なぜGitが分散バージョン管理の勝者になったか
たった数週間で生まれたGitがなぜSubversionもMercurialも退けたのかを、実需・速度・データ完全性・GitHubの4点から辿り、道具は制約から設計されると腑に落ちる。
なぜHOSTS.TXTからDNSへ移ったか
名前解決が1つのファイルの配布から階層分散へ移った理由を史実で追い、中央集権が破綻する規模の見極めと委任・キャッシュ設計の勘所を持ち帰れる。
なぜIPv6は普及が遅いか
20年以上たっても半分がIPv4のままな理由を、NATによる延命と互換性の欠如から解き明かし、後方互換の無い移行がなぜ難しいかという普遍の原則を持ち帰れる。
なぜJSONがXMLに取って代わったか
Web APIのデータ形式がXML/SOAPからJSON/RESTへ移った本当の理由がわかる。軽さ・即パース・摩擦の少なさという勝因と、XMLが今も残る領域の見極めを持ち帰れる。
なぜnullは10億ドルの誤りと呼ばれるか
ぬるぽの根っこは60年前の一つの設計判断にある。その来歴をたどれば、なぜOption型やKotlinのnull安全が生まれたか、不在を型で表す設計の勘所が腑に落ちる。
なぜQWERTY配列のままか
遅いはずのQWERTYが150年生き残る理由を史実で追い、より速いとされたDvorakが普及しなかった構造を知れば、経路依存とロックインという設計判断の落とし穴を持ち帰れる。
なぜUTF-8が世界標準になったか
既存のASCIIプログラムをそのまま動かせる後方互換設計が、UTF-16との競争を制した理由が腑に落ちる。一晩で生まれた仕様がWebの98%超を占めるに至った来歴と、後方互換性の威力を持ち帰れる。
なぜセマンティックバージョニングが必要になったか
バージョン番号を見るだけで壊れる更新かどうか判断でき、依存地獄から抜け出せる。MAJOR.MINOR.PATCHが互換性の約束になった経緯を、SemVer提唱から左pad事件まで辿る。
なぜポート番号はそう割り当てられているか
HTTP=80・SSH=22がなぜその番号なのか、0〜1023に管理者権限が要る理由を来歴から理解でき、共有名前空間を統制する設計思想を持ち帰れる。
なぜリトルエンディアンが主流になったか
同じ整数でもCPUによってバイトの並び順が逆になる理由を、x86の市場支配とネットワーク標準の対立から解き明かし、なぜ変換コストが今も残るのかを腹落ちさせる。
なぜ時刻の起点は1970年1月1日か(と2038年問題)
スマホもサーバーも時刻を「1970年からの秒数」で数える理由が腑に落ち、2038年問題やうるう秒の落とし穴まで、日付処理の設計勘所をまとめて持ち帰れる。