怠慢

怠慢さはプログラマにとって最も重要な資質であると言われる。確かに、よいプログラマは怠慢さを愛する。怠慢さを愛するあまり、while(true){...} の中で無限に昼寝をしているような、とてもlazyなプログラムを書く。昼寝の合間にたまに仕事をして、ひとつyieldしたらまた昼寝する。仕事の本質が無限ループと昼寝に集約され、終了条件を考えなくてよくなるので、この手法を使うととても明解なプログラムが書けるのである。

よいファンタジー作家も怠慢さを愛する。ただ彼の場合はもうちょっと怠慢さに根性が入っており、自分自身が別の世界で昼寝をしている。昼寝の合間に物語をでっちあげ、こっち側にyield してまた昼寝する。無限ループの中の昼寝こそが彼の本質である。この場合もやはり、終了条件を考慮する必要なく仕事に専念できるので、質の高い仕事が可能になる。

こっち側には別のスレッドがあって、つまらない面倒くさい仕事はこっちのスレッドで行なう。寿命がくるとこのスレッドは終了するが、決してあっち側のスレッドは終了しない。

たまに、勘違いしてこっち側のスレッドの悪口を一生懸命言ってる奴がいるが、producerはあっち側のスレッドであって、こっち側は単なるconsumerである。consumerがいい奴だろうが悪い奴だろうが本筋とは関係ない。producerとyieldされるものの質を問題にすべきである。