Skip to content

Still Readable

AIが描いたイラストが炎上していた。

数十時間かけて描いた作品と、プロンプトを数行打って秒で出てきた画像。見分けがつかない。CG・イラスト界隈では「それは創作なのか」という議論が続いている。出自が問われている。過程が問われている。時間をかけたかどうかが、作品の価値に組み込まれ始めている。

コードの世界では、この議論があまり起きない。

理由は単純だ。gitがある。誰が、いつ、どの行を、なぜ変えたか。すべて記録されている。AIが書こうが人間が書こうが、コミットログとdiffが残る。出自は追える。過程は可視化されている。コードには、最初から履歴という証明が組み込まれていた。

最初に触ったバージョン管理はMicrosoft SourceSafeだった。ファイルをロックして編集し、終わったらアンロックする。二人が同時に触れない。排他制御。原始的だが、壊れにくかった。壊れにくいというか、壊れる前に止まった。

Subversionが来て、中央リポジトリという概念が確立した。チェックアウトして編集し、コミットして戻す。ロックではなくマージで衝突を解決する。一歩進んだ。だが中央サーバーが落ちれば全員が止まる。中央集権の宿命だった。

そこにgitが現れる。リーナス・トーバルズがLinuxカーネルの管理に使っていたBitKeeperのライセンスが問題になり、代替を書き始めた。4日後にはセルフホスティングしていた。AIのない時代に、分散バージョン管理という概念の設計と実装を同時にやってのけた。嫉妬すらもはやない。

gitは分散型だ。全員がリポジトリの完全なコピーを持つ。サーバーが落ちても手元に履歴がある。ブランチは軽く、マージは賢い。SVNの中央集権に対して、gitは全員が対等。構造そのものが思想だった。

考えてみれば、バージョン管理とはテキストの差分を時系列で記録する仕組みだ。何が変わったか。何が消えたか。誰がそれをやったか。コードに限らない。法律の条文も、憲法の改正案も、本質的にはdiffで語れる。

AIがコードを書く時代に、gitの価値はむしろ上がっている。AIの名前がコミットログに残らなくても、diffを見ればわかる。人間には書けない量のコードが、ひとつのコミットに収まっている。

だがgitが本当に記録しているのは、著者名ではない。試行錯誤とトレードオフの軌跡だ。なぜこの設計を選び、なぜあの実装を捨てたか。コミットログとdiffを辿れば、AIが書いたコードの背後にある人間の意図は、まだ読み取れる。