ハックは遍在する

数年ぶりにポール・グレアムの『ハッカーと画家』を読みなおした。この本が出版されたのは2005年。当時大学院の修士1年生だった私は、就職活動のための新幹線での移動中にこの本を読んでいた。

あれから10年経った。紆余曲折あって、今は組込みOSのテクニカルサポートという仕事にありついた。10年前の私がそれを知ったらきっとこう思うだろう。テクニカルサポートなんて、全然ハッカーじゃないみたいじゃないか。

もしかすると、テクニカルサポートという仕事を聞き慣れない人もいるかも知れない。難しい仕事ではない。要はデバッグ屋である。障害解析というもっと格調高い言い方もあるが、私はデバッグ屋という方が気に入っている。障害解析なんて、全然ハッカーじゃないみたいじゃないか。

この仕事のコツは、遊び心と知的好奇心を持って事に当たることだ。組込み向けとはいえ数百万行(Linuxに比べれば楽勝だ)という規模のソフトウェアの蓋を開けて中を覗かなければならない。Linuxの仕事が来ることもあるが、こちらは最後に数えた時は1700万行程度だった。いずれにせよ、普通の人なら圧倒されてしまうだろう。

ハッカーと画家』の中で、ポールは3つのことを強調している。プログラミングとベンチャーLispだ。言い換えると、ハッカーとは、ベンチャー企業で働いていてLispで何か新しいキラキラしたものを作るプログラマのことだ。

私も10年前にはそう思っていた。だが、私もエンジニアとしての経験を積み、その考えも変わってきた。ベンチャー企業で働いていなくても、Lispでプログラミングをしていなくても、そしてプログラマでさえなくても、ハッカーとそのセントラルドグマであるハッカー精神は存在しうるのではないか。

ハッカーとは単なるプログラマではない。ハッカーとは、情熱と創意工夫とによって知的に高度な難問に取り組むことに喜びを感じる人のことである。難問への回答が計算機プログラムという形式を取るとき、ハッカープログラマである。

この1週間ほど、特定のCPUアーキテクチャに依存するメモリバリアに関するちょっと面白い問題を追っている。この手の問題は、ソースコードだけを見ていてもわからない。CPUの気持ちになって考えることが肝要だ。これぞハックだと思った。

日本におけるOS研究のパイオニア、高橋延匡先生は、OSの設計者はオーケストラの指揮者であると仰った。デバッグ屋としての私の仕事は、不協和音を奏でるようになったオーケストラに、再び美しいシンフォニーを演奏させることである。これは大変な難問である。

最近の私は、プログラミングをする機会はめっきり減ってしまった。最近書いたプログラムはEmacsのちょっとしたカスタマイズコードである(私はちゃんとLispを使っている)。それでも、私の日々の仕事は知的に高度な難問でいっぱいだ。そういう仕事に取り組むとき、私はハッカーになるのである。

ハックは遍在する。あらゆるところに。