プログラマの三大徳目について


プログラミング言語 Perl の作者 Larry Wall さんの有名な格言にプログラマの三大徳目というものがあります.

ちょっと今更感はありますが, 個人的に参考にさせていただいたので紹介させていただきたいと思います.

それぞれ “無精”, “短気”, “傲慢” と言われるものです.

正確には Wall さんたちが書かれた書籍 Programming Perl の最初の方に次の一文を書かれています:

We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.

私たちはあなたがプログラマの三大徳目を養うことを勧めます: 無精, 短気, そして傲慢.

この三つの言葉だけをそのまま受け取ると, いやいやそれは偉大な徳目ではなくて, むしろプログラマとしてはあるまじき態度なのでは, と思ってしまいそうですがこれら三つの言葉に対して同本の Glossary により詳しく次のように定義されています:

無精

The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book.

全体のエネルギー消費量を減らすために大変なの努力をさせる資質. それは他の人たちが有用と思う大変なことを代わりにやってくれるプログラムを書いたり, 自分がそれに関するたくさんの質問に答えなくてもいいように自分が書いたことを文書化させる. それゆえに一つ目の偉大なプログラマの徳. それゆえにこの本も.

短気

The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least that pretend to. Hence, the second great virtue of a programmer.

コンピュータが無精なときに感じる怒り. これはあなたの要求に単に反応するだけではない, 実際にあなたの要求を予想する, もしくは少なくともそのふりをするプログラムを書かせる. それゆえに二つ目のプログラマの偉大な徳.

傲慢

Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer.

過度な自尊心, それはゼウスがあなたに雷を落とす理由のようなもの. また他の人たちが悪いことを言えないプログラムを書き, そして維持させる資質. それゆえに三つ目のプログラマの偉大な徳.

このようなそれぞれの定義を見てみると, 必ずしもいい意味で使われないそれぞれの言葉がむしろエッジの効いたかっこいい皮肉のようになってネガティブな言葉をポジティブな言葉として捉えることができてしまいます.

確かに一般的な無精はよくないですが, より効率を上げて少ない労力で大きな成果を成し遂げるという意味での無精はプログラマにとっては徳ですよね.

短気も少し言葉は悪いですが少々愚鈍なプログラムに対する批判的な感情を持っているのといないのとでは, 使い勝手がいいプログラムを書けるかどうかということに影響しそうです.

最後の傲慢は例えばプログラムを作って他の人たちに使ってもらう上で, もっとこうしたほうがいいのではないかとか, なんでこの機能がついてないのといったことを言われて, 確かにそのような意見は大変貴重なもので参考にするべきなのですが, その一つ一つにあまりにも全身全力真剣に向き合ってしまうと最後には自分は何を本当に作りたかったのかのような作るプログラムの方向性を見失ってしまったり神経をすり減らしてしまうリスクがある気がするのである程度の傲慢さというものは少なからず必要なのかもしれませんね.

プログラマの三大徳目みなさんはご存知だったでしょうか.

これからプログラマとしてやっていきたいという方には, この格言はプログラマとしての姿勢はどうあるべきなのかという本質的なことをことを少し刺激的に教えてくれる貴重なものだと思いますので, まだご存知なかった方は是非ご参考にしてください.