美徳としての怠惰とはなにかね

ウェブ時代をゆくが「これからの2.0世紀怠け者は去れ!勤勉であれ!勤勉であれ!」っていうトーンでまとめられていてへこんだ。まあ勤勉さは大切だけどね……

でもそもそも勤勉の反対の怠惰ってのがプログラマが備えるべき重要な素養ではなかったのかね。それと反した物言いをされると、「怠けていればいつかハッカーになれるぜ!」というワナビーとしての矜持が崩れてしまうな。

一方、 Perl の作者である Larry Wall は「プログラマの三大美徳は怠惰・短気・傲慢である」と述べています。

ほらね!僕は怠惰でいいんだ!おめでとう!ポール・グラハムも言ってた!

he said that he wrote all those comments because he was lazy - he didn't want to have to work hard to change the code later.

「僕は怠惰だからいっぱいコメントを書くのさ。後でコードを変更するときに苦労しなくていいように。」

うわ、なんだこの怠惰は。こんな怠惰は聞いたことがないぞ。つうかこれは怠惰なのか?

For me, well-written unit tests are my way of being lazy.

怠惰のためにユニットテストを書く!やべー怠惰すごすぎる。なんか怠惰が神聖なものに見えてきたよ。そう考えると勤勉もたいしたもんじゃないな!

……プログラマ世界における働き者とか怠け者っていう定義が特殊すぎるのかもしれんな。

コードをコンパクトにすることとコメントを書くこと

全体の労力を減らすために手間を惜しまない気質。この気質の持ち主は、役立つプログラムを書いてみんなの苦労を減らしたり、同じ質問に何度も答えなくてもいいように文書を書いたりする。よって、プログラマーの第一の美徳である。

この定義によれば、コードをコンパクトにすること、コメントを書くこと、ユニットテストを書くこと、ドキュメントを書くこと、これら全て怠惰、怠慢、に相当するだろう。

でもなんか個人的には、コードをコンパクトで可読性高くすることには楽しさがあるんだが、コメントやユニットテスト、ドキュメントを整備することに対する楽しさは格段に落ちるんだよなあ。ここでは個人一人でなにか作るときの話ね。

この辺の全部をひっくるめて怠惰に押し込めるだけの徹底した怠惰を備えているかどうかが、凡人と超人の差なのかしらん。