DNAの「D」はデオキシリボースを意味する。これは単なる豆知識ではない。あなたの遺伝情報のアーカイブ全体が、糖のバックボーン(骨格)の上に成り立っているという事実を思い出させてくれるものだ。32億個の塩基対のすべてが、この分子の足場に依存している。あなたが開発者でも、問題解決者でも、あるいは多細胞生物ですらなくなる前に、あなたは「自己複製を学んだ化学反応」であった。最初の自己複製分子から、今朝あなたがプッシュしたコミットに至るまでの道のりは長く、途切れることなく、そしてほとんどのテクノロジーの起源物語よりも奇妙なものである。その道のりを理解することは、あなたの仕事の見方を変えることになる。
昼食からレガシーへ
糖は単なる燃料ではない。グルコースを摂取すると、体はそれをいくつかの代謝経路へと振り分ける。分子を即座に燃焼させてATPにするか、グリコーゲンとして蓄えるか、あるいはペントースリン酸経路へと送るかだ。この経路は細胞の細胞質内で機能し、代謝における最も多忙な交差点の一つとして働いている。一連の酸化反応と炭素交換反応を通じて、6炭素のグルコース骨格は削られ、5炭素の糖であるリボース-5-リン酸へと再構成される。
そのリボース誘導体は廃棄物ではない。それは、細胞が新しいDNAを繋ぎ合わせるために使用するデオキシリボヌクレオシド二リン酸(dNDPs)の合成に直接組み込まれる。同じ経路は、脂肪酸の構築から抗酸化防御に至るまで、あらゆるものにエネルギーを供給する還元通貨であるNADPHも生成する。あなたの昼食とゲノムは、同じ原材料を共有しているのだ。
午後2時にデバッグをしているとき、このことを考えてみてほしい。脳を覚醒させているグルコースは、ニューロン内のDNAを修復するのと同じ分子の流れの一部なのだ。あなたは単に燃料を消費しているのではない。あなたという存在を形作っている素材そのものを処理しているのだ。ソフトウェアにおいて私たちが構築する抽象化レイヤー(関数がライブラリを呼び、ライブラリがカーネルを呼び出す構造)には、生化学的なパラレルが存在する。細胞は、意識的な決定を一切行うことなく、糖をエネルギー、修復、そして複製へと抽象化する。ソースコードをバイナリにコンパイルするとき、あなたも同様のことを行っている。どちらのプロセスも、生の基質を機能的な何かへと変換しているのである。
アーキテクチャとしてのエラー
この生化学的な精密さは、最初から完成された形で現れたわけではない。それは約38億年前、自己複製が可能な分子とともに始まった。このシステムの最も重要な特徴は、その「不完全さ」にあった。完璧なコピー機があれば、静止した世界、つまり同一の分子が並ぶ行き止まりの世界が生まれていただろう。しかし、代わりにエラーが入り込んだ。そのほとんどは何かを壊した。何もしないものもあった。しかし、ごく稀に、より速く複製し、より長く存続し、あるいは局所的な環境下でより良く生き残る変異を生み出した。その不完全さこそが、進化なのだ。
進化とは、ラボマネージャーのいない実験のようなものだと考えることができる。ランダムな突然変異が試行を提案し、自然選択がその結果を読み取る。絶滅とは、適応の失敗である。プルリクエストをレビューするシニアアーキテクトも、スプリントプランニングも、ロールバック戦略も存在しなかった。そこにあったのは、熱、寒さ、飢餓、放射線、捕食、そして競争といった、剥き出しの選択圧のみであった。数十億年もの間、それが唯一のガイドだった。その試行錯誤のプロセスの出力が、今まさに目の前で、精製された砂から作られたデバイス上でテキストを読んでいるあなた自身なのだ。
積み上がるスタック
生命の進展は、梯子ではない。それは、より複雑な抽象化が一つずつ上に積み重なっていく「スタック」である。
- 自己複製する化学反応が協調を学び、多細胞生物となった。
- ある系統は中央集権的な神経系を発達させ、一つの枝分かれが自己意識を持つ人間を生み出した。
- 意識は言語を生み、次に記号的表現を、そして数学を生み出した。
- 私たちは、ニューロンの発火よりも速く記号を操作する機械を構築し、それが計算と人工知能へと繋がった。
歴史の大部分において、生命はただプログラムを実行するだけだった。DNAはタンパク質を通じてその指示を実行し、生物は環境に反応していた。人間は、ソースコードを読み解く最初の種となった。メンデルはエンドウ豆を数え、ワトソンとクリックは二重らせんのモデルを構築した。私たちはゲノム配列を解読し、代謝ネットワークをマッピングした。そして、私たちは「読む」ことから「書く」ことへと決定的に移行した。CRISPRで遺伝子を編集し、新しい生物を合成し、シリコンウェハー上でニューラルネットワークを訓練している。
コードに書き込むあらゆる抽象化は、その古のプロセスのささやかな継続です。ソートアルゴリズムを書き直す手間を省くためにライブラリをインポートするとき、あなたは生物学が化学反応の上に細胞機構を築き上げたのと同じように、蓄積された知識の上に積み上げています。アプリケーションをコンテナ化するとき、あなたは複製と環境制御を意図を持って扱っています。それは、かつて分子が偶然にしか成し得なかったことです。
「盲目」と「意図」の違い
現在のAI支援の波は、代替されることへの切実な不安を引き起こしています。しかし、そのような捉え方は、より深い連続性を覆い隠してしまいます。これらのツールは人間の意図を増幅させます。アイデアから実行までの時間を圧縮します。かつてジュニア開発者が何時間もかけてボイラープレートを書いていたことが、今では数分で完了します。しかし、その方向性を決めるのは、依然としてカーソルを握る人間なのです。
これは真に新しいことです。38億年もの間、進化は盲目でした。進化には目標も、ロードマップも、金曜日のレトロスペクティブもありませんでした。あなたはそれらすべての研究開発を細胞の中に宿していますが、同時に、先を見通すことができる連鎖の最初の環でもあります。進化は昨日の環境に反応します。あなたは明日の要件に向けて計画を立てることができます。壊れやすいレガシーコードをリファクタリングする代わりに...
