プログラマの三大美徳

2009年 科技 仕事
プログラマの三大美徳

先日の飲み会で「プログラマの三大美徳」を話題にしたが、知ってる人が少なかったのでメモしておく。

前段として、「七つの大罪」を知っておきたい。キリスト教の用語で、人間を罪に導く可能性がある欲望や感情を戒めている。『セブン』や『鋼の錬金術師』といった娯楽作品にも引用されている。

  1. 傲慢 えばるな
  2. 嫉妬 ねたむな
  3. 憤怒 怒るな
  4. 怠惰 なまけるな
  5. 強欲 よくばるな
  6. 暴食 食べ物を粗末にするな
  7. 色欲 みだらなことをするな

そして、「プログラマの三代美徳」は下記のとおり。

  1. 無精
  2. 短気
  3. 傲慢

一般的にはネガティブな要素ばかりだが、プログラマに必要不可欠な能力や姿勢なのである。1つずつ説明していくと、

1.無精(Laziness) 効率、再利用性の重視
プログラマは、「勤勉」であってはならない。

面倒な作業、同じことの繰り返し、不毛な打ち合わせに甘んじることなかれ。つねに楽すること、手を抜くことを考えよう。問題を解くのではなく、問題を解く道具を作って提供すればいい。頭を使って、時間と労力を節約しよう。

2.短気(Impatience) 処理速度の追求
プログラマは、「のん気」であってはならない。

ターンアラウンドタイムは短く、記述は簡潔な方がいいに決まってる。打ち合わせする時間があれば、作ってしまえばいいじゃん。知りたいと思ったことはすぐ調べて、とりあえず試しておこう。明日困らないために、今日準備しておくのだ。

3.傲慢(Hubris) 品質への自負
プログラマは、「謙虚」であってはならない。

つねにパーフェクトな仕事をして、他人に文句を言わせない。そして、自分の作品は惜しげもなく公開する。たとえそれが不完全であっても気にしない。自分の手でパーフェクトにする必要はないのだから。

こうして見ると、プログラマは変わった「人種」だなぁと思う。営業マンやデザイナーにも、同じように考える人はいるけど、プログラマほどの体現者はいない。しかしプログラマは、その純粋さゆえに不遇の扱いを受けることもある。まぁ、種類が違うのだから、やむを得ない。サラリーマンの美徳が「勤勉」、「のん気」、「謙虚」であるとすれば、真逆の存在なのだから。
出典は、Perlの開発者でもあるラリー・ウォール。いわゆる「らくだ本」の著者だ。

原文:
https://www.lanl.gov/Document/