おじいちゃんの書斎に、古いノートパソコンがある。今のような透明なディスプレイじゃなくて、黒くて重たい四角い箱。蓋を開けると、物理的なキーボードがついていて、キーのひとつひとつにアルファベットが刻まれている。いくつかのキーは他より擦り減っていて、おじいちゃんは「コードを書くとき、よく押してたキーだよ」と教えてくれた。
「コードを書く」って何、と聞いた。
おじいちゃんは画面に何かを開いた。Visual Studio Codeというやつで、「IDE」と呼んでいた。Integrated Development Environment。統合開発環境。「何を"統合"する必要があったの?」って聞いたら、おじいちゃんは笑った。「昔は全部バラバラだったんだ。エディター、ターミナル、デバッガー。自分でひとつにまとめなきゃいけなかった」
画面に色とりどりの文字が並んでいた。緑の単語、オレンジの単語、白い単語。読めない模様みたいに見えた。おじいちゃんはある行を指して言った。「これは俺が書いたんだ。一文字ずつ。セミコロンも、括弧も、変数名も、全部自分で打った」
理解できなかった。「なんでコンピュータにやりたいこと言えばよかったんじゃないの?」
「言えなかったんだよ」とおじいちゃんは言った。「コンピュータは俺たちが何をしたいか、わからなかった。俺たちの考えをコンピュータの言葉に翻訳しなきゃいけなかった。それがプログラミングだった」
「バグ」というものを見せてくれた。虫じゃなくて、コードの間違い。カンマがひとつ足りなくて、全部が動かなくなったらしい。そのカンマを探すのに、丸一日かかったこともあるって。丸一日。カンマ一個のために。
「イライラしなかったの?」と聞いた。
おじいちゃんは少し黙って、それから意外なことを言った。「それが一番楽しかったんだよ」
問題とじっくり向き合って、ああでもないこうでもないと考えて、別のやり方を試して。コードがやっと動いた瞬間の感覚。おじいちゃんはそれを「フロー」と呼んだ。時間が消えて、自分と機械だけが、この精密で不思議な言語で対話している状態。
「プログラム全体を頭の中に入れておかなきゃいけなかった」とおじいちゃんは言った。「すべての関数、すべての依存関係、すべてのエッジケース。それはまるで……言葉で大聖堂を建てるようなものだった」
古いノートパソコンを見た。色のついた文字列を見た。擦り減ったキーの上に浮かぶおじいちゃんの手を見た。機械のほうがずっとうまく話せるようになった言語を、何年もかけて学ぶということ。途方もない時間の無駄に思えた。
でもおじいちゃんの顔を見たら、見覚えのある表情があった。おばあちゃんが自動栽培機があるのに手で庭いじりをするときと同じ目。お父さんが音楽を生成できるのにアコースティックギターを弾くときと同じ顔。
難しいからこそ愛した人の顔だった。
おじいちゃんはノートパソコンを閉じて、棚に戻した。「バグは懐かしくない。深夜2時のデプロイ障害も懐かしくない。依存関係の地獄も懐かしくない」。少し間を置いて、「でも、考えることは懐かしい。理解しなきゃいけなかったことが、懐かしい」
教えてほしい、と言った。おじいちゃんは本当に嬉しそうに笑って、「もう教えることは何もないよ。でも、どんな気持ちだったかは見せてあげられる」
もう一度ノートパソコンを開いて、新しいファイルを作って、二本指でゆっくり打った。
print("Hello, World!")
画面に二つの単語が表示された。一番簡単なプログラム。おじいちゃんは人生で何千ものプログラムを書いてきた。インフラを管理し、データを処理し、私には名前もわからない問題を解くプログラムを。
でもあの二つの単語が画面に現れたとき、おじいちゃんは古い友達に再会したみたいな顔をしていた。