プログラミングの魔力

私は大学に進学するときに,とりあえず情報とついた学科に入ってみた.今思えば,高校のころにlainをみて,その中でプログラミング言語Lispがでてきて,(人生を狂わせるという意味で)かの悪名高い「ポール・グレアムのエッセイ」を読んでしまったことが原因だと思う.肝心の大学ではC, C++, Java, Verilog, Fortranなど色んな言語に触ったが,どうにも肌に合わず(ダイクストラ法なども習ったがわからなかった),一時期は数学や確率統計に興味を持ってプログラミングとは距離を置けそう(数学や確率統計が縁遠いとはとんでもない勘違いだが)な専攻をしたりした.ところが,卒業研究を始めると実験のためにAndroidアプリを作ってみたりした.最初はいわゆるコピぺのプログラミングだが,Javaの病的なまでのオブジェクト指向だとか,Javaにはコアの部分として仮想マシン(VM)というものがあって別の言語(ClojureScala)が沢山存在してそれぞれの色んな哲学がわかるようになった.最後に性能をもとめてC++をさわったときのゼロオーバーヘッドやら例外安全への追求に胸をふくらませるようになった.

プログラミングの魔力に気づいたとき,自分はもっときちんとした情報系の学科にいくべきだったと落ち込んだが,そんなことはどうでもよかった.なんといってもプログラミングは個人プレーである.チームで開発することもメリットは多いが,とくにオープンソースでは結局のところパワフルな誰か一人が主導して他の人々は五月雨的に貢献していることが多いと思う.私も趣味で作ったオープンソースや,何なら会社で作っているプログラムも基本的には他の人間が触れるようにできているが,私しかプログラムの行く先は知らないのだ.

その魔力の正体は,憧れと早さなんじゃないかと思う.いまの自分にできないものを見ると勉強せずにはいられなくなる.できることが増えると,結構いままでの応用で人生二週目的な能率で新しいことができるようになる.憧れといえば,プログラミングほど属人性が高い分野はないんじゃないかと思う(数学なんかはどうだろう,ガウスがいたような昔と比べれば落ち着いた?).例えばF1ドライバーも属人性が高いけど,だからといってアロンソがいないと自動車産業が10年後退したかといえば違うだろう.プログラミングでは,例えばデニス・リッチーがいなければUnixC言語もなかったし,RMSがいなければオープンソースなんてなかっただろう.プログラミングの凄いところは,比喩でなく人類の進化を一人で推し進められるところなんじゃないかと思う.たぶん.