プログラマの三大美徳
2009年 科技 仕事先日の飲み会で「プログラマの三大美徳」を話題にしたが、知ってる人が少なかったのでメモしておく。
前段として、「七つの大罪」を知っておきたい。キリスト教の用語で、人間を罪に導く可能性がある欲望や感情を戒めている。『セブン』や『鋼の錬金術師』といった娯楽作品にも引用されている。
- 傲慢 えばるな
- 嫉妬 ねたむな
- 憤怒 怒るな
- 怠惰 なまけるな
- 強欲 よくばるな
- 暴食 食べ物を粗末にするな
- 色欲 みだらなことをするな
そして、「プログラマの三代美徳」は下記のとおり。
- 無精
- 短気
- 傲慢
一般的にはネガティブな要素ばかりだが、プログラマに必要不可欠な能力や姿勢なのである。1つずつ説明していくと、
- 1.無精(Laziness) 効率、再利用性の重視
- プログラマは、「勤勉」であってはならない。
面倒な作業、同じことの繰り返し、不毛な打ち合わせに甘んじることなかれ。つねに楽すること、手を抜くことを考えよう。問題を解くのではなく、問題を解く道具を作って提供すればいい。頭を使って、時間と労力を節約しよう。
- 2.短気(Impatience) 処理速度の追求
- プログラマは、「のん気」であってはならない。
ターンアラウンドタイムは短く、記述は簡潔な方がいいに決まってる。打ち合わせする時間があれば、作ってしまえばいいじゃん。知りたいと思ったことはすぐ調べて、とりあえず試しておこう。明日困らないために、今日準備しておくのだ。
- 3.傲慢(Hubris) 品質への自負
- プログラマは、「謙虚」であってはならない。
つねにパーフェクトな仕事をして、他人に文句を言わせない。そして、自分の作品は惜しげもなく公開する。たとえそれが不完全であっても気にしない。自分の手でパーフェクトにする必要はないのだから。
こうして見ると、プログラマは変わった「人種」だなぁと思う。営業マンやデザイナーにも、同じように考える人はいるけど、プログラマほどの体現者はいない。しかしプログラマは、その純粋さゆえに不遇の扱いを受けることもある。まぁ、種類が違うのだから、やむを得ない。サラリーマンの美徳が「勤勉」、「のん気」、「謙虚」であるとすれば、真逆の存在なのだから。
出典は、Perlの開発者でもあるラリー・ウォール。いわゆる「らくだ本」の著者だ。
原文:
https://www.lanl.gov/Document/