ホーム/ 技術の「なぜ」

技術の来歴

技術の「なぜ」

なぜUTF-8が勝った? なぜnullは10億ドルの誤り? なぜGitが勝った? 当たり前の技術がそうなった来歴と意思決定を史実で物語る。

解説記事

来歴と理由

結論→当時の状況と競合→決定打→今への影響。俗説でなく、確かな出典に基づいて。

3つの要点応用

なぜ11行のコードが世界のビルドを一斉に壊せたのか

2016年、たった11行のnpmパッケージ「left-pad」の削除がBabelなど著名プロジェクトを巻き込みビルド不能を連鎖させた。犯人は行数でなく依存の連鎖構造にあったと分かる。

3つの要点応用

なぜCookieが生まれたか

ショッピングカートが動く理由をたどると、ステートレスなHTTPに状態を足す発明にたどり着く。Cookie誕生の経緯と、追跡への転用・廃止の流れまで一気に掴める。

3つの要点応用

なぜGitが分散バージョン管理の勝者になったか

たった数週間で生まれたGitがなぜSubversionもMercurialも退けたのかを、実需・速度・データ完全性・GitHubの4点から辿り、道具は制約から設計されると腑に落ちる。

3つの要点応用

なぜHOSTS.TXTからDNSへ移ったか

名前解決が1つのファイルの配布から階層分散へ移った理由を史実で追い、中央集権が破綻する規模の見極めと委任・キャッシュ設計の勘所を持ち帰れる。

3つの要点応用

なぜIPv6は普及が遅いか

20年以上たっても半分がIPv4のままな理由を、NATによる延命と互換性の欠如から解き明かし、後方互換の無い移行がなぜ難しいかという普遍の原則を持ち帰れる。

3つの要点応用

なぜJSONがXMLに取って代わったか

Web APIのデータ形式がXML/SOAPからJSON/RESTへ移った本当の理由がわかる。軽さ・即パース・摩擦の少なさという勝因と、XMLが今も残る領域の見極めを持ち帰れる。

3つの要点応用

なぜnullは10億ドルの誤りと呼ばれるか

ぬるぽの根っこは60年前の一つの設計判断にある。その来歴をたどれば、なぜOption型やKotlinのnull安全が生まれたか、不在を型で表す設計の勘所が腑に落ちる。

3つの要点応用

なぜQWERTY配列のままか

遅いはずのQWERTYが150年生き残る理由を史実で追い、より速いとされたDvorakが普及しなかった構造を知れば、経路依存とロックインという設計判断の落とし穴を持ち帰れる。

3つの要点応用

なぜUTF-8が世界標準になったか

既存のASCIIプログラムをそのまま動かせる後方互換設計が、UTF-16との競争を制した理由が腑に落ちる。一晩で生まれた仕様がWebの98%超を占めるに至った来歴と、後方互換性の威力を持ち帰れる。

3つの要点応用

なぜセマンティックバージョニングが必要になったか

バージョン番号を見るだけで壊れる更新かどうか判断でき、依存地獄から抜け出せる。MAJOR.MINOR.PATCHが互換性の約束になった経緯を、SemVer提唱から左pad事件まで辿る。

3つの要点応用

なぜポート番号はそう割り当てられているか

HTTP=80・SSH=22がなぜその番号なのか、0〜1023に管理者権限が要る理由を来歴から理解でき、共有名前空間を統制する設計思想を持ち帰れる。

3つの要点応用

なぜリトルエンディアンが主流になったか

同じ整数でもCPUによってバイトの並び順が逆になる理由を、x86の市場支配とネットワーク標準の対立から解き明かし、なぜ変換コストが今も残るのかを腹落ちさせる。

3つの要点応用

なぜ時刻の起点は1970年1月1日か(と2038年問題)

スマホもサーバーも時刻を「1970年からの秒数」で数える理由が腑に落ち、2038年問題やうるう秒の落とし穴まで、日付処理の設計勘所をまとめて持ち帰れる。