ハッカーと画家読了

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

5章と9章以降特におもしろかった。

以降、退屈なプロジェクトの仕事は一切しなくてよい(家族が餓死しそうでない限りは)、その代わりに、絶対に中途半端な仕事はしない。

もう一カ所、長いけれども。

 例えば大学で私は、コンピュータに手を触れる前に紙の上でプログラムを完全に理解しなければならないと教わった。でも私はそういうふうにはプログラムできなかった。私が好んだやり方は、紙の前ではなく、コンピュータの前に座ってプログラミングすることだった。しかも、辛抱強くすべてのプログラムを書き上げてから正しいことを確認するなんてことはせずに、めちゃくちゃなコードをおっぴろげて、それを次第に形にしてゆくのだった。……
 そのことで私はずいぶんと長い間、引け目を感じていた。……他のものを創る人々、画家や建築家がどうやっているかを見れば、私は自分のやっていることにちゃんと名前が付いていると気づいていただろう。スケッチだ。私の知る限り、私が大学で教わったプログラミングのやり方は全部間違っていた。作家や画家や建築家が創りながら作品を理解してゆくのと同じで、プログラマはプログラムを書きながら理解してゆくべきなんだ。
 これを知ることは、ソフトウェアの設計に大きな意味を持つ。まず、プログラミング言語は何よりも柔軟でなければならないということが言える。プログラミング言語はプログラムを考えるためのものであって、既に考えたプログラムを書き下すためのものじゃない。……私たちに必要なのは落書きしたりぼかしたり塗りつぶしたりできる言語であって、型の紅茶茶碗を膝に置いて、落とさないようにバランスをとりながら、作法にうるさいコンパイラおばさんとお上品な会話をするような言語じゃない。

スケッチしていくようなやり方がよいというのは勇気づけられる話。前にUNIX MAGAZINEで読んだ一発完動プログラミングがなかなかできない人間としては特に。分野にもよるのだろうけれど、スケッチ型でも問題ないということですかね。
あと、言語は柔軟でなければならないというあたり、スクリプト言語が流行る原因や、Rubyが楽しいとされる原因にも関係があるのかも知れないと思った。