抜粋(「私のプログラム」・「私の研究」・「私の翻訳」・「私のブログポスト」…)


ジェラルド・ワインバーグ『プログラミングの心理学』(旧版)から抜粋.「プログラム」を「研究」に,「コンピュータ」を「事実」に置き換えるなどしてお読みいただくと味わいが深まります.

だが,よいものはたいていそうだが,プログラマの「孤立性」もしばしば行きすぎになる傾向がある.とかく彼らは人々からは孤立する一方で,作ったプログラムには執着する.実のところ彼らのプログラムは,しばしば彼らの分身となる.それはプログラムに自分の名前をつける,という忌まわしい習慣の存在によって実証されるとおりである.(p. 78)

だが,なぜプログラムを「所有」してはいけないのだろうか.(Ibid.)

「所有指向」のプログラミングの真の問題点は,別のところから生じる.われわれがある絵画や小説や建築を劣っていると思うとき,それは好みの問題である.だがわれわれがあるプログラムを劣っていると思うとき,(よいプログラミングとは何ぞや,という問題が背後にひそんでいる,という問題はあるものの)それは少なくとも潜在的には,客観的に証明すること,または反証を挙げることができる可能性のある問題なのだ.少なくともわれわれは,プログラムをコンピュータにかけて,どうなるか見ることはできるのだ.芸術家ならば,批評家が気に入らないことをいったとしても,それを無視することができる.だがプログラマが,コンピュータがくだす判定を無視するなどということが可能だろうか.


 表面的に見れば,コンピュータのくだす判定には反論の余地がないかのように思われる.そしてもし本当にそのとおりだとすると,プログラマが自分のプログラムに執着することは,彼の自己イメージに対して重大な結果をもたらすことになる.コンピュータが彼のプログラムに含まれる虫を暴露したとき,プログラマは次のように推論せざるを得ない立場に追い込まれる.

「このプログラムには欠陥がある.このプログラムは私の一部であり,私の分身であり,私の名前すらついている.とすれば私は欠陥人間だ.」

だがまさにこの自己評価のあまりの苛酷さゆえに,そういう推論がなされることはまずない.(p. 79)


このあと,認知的不協和の議論がしばらく紹介されます.それにつづいて:

(…)すべてのプログラマは,不協和の解消という症状を見慣れている.もちろん他人がその症状を示した場合に限ってのことであるが…….プログラマが印刷結果を持ってホールを降りてきたとしよう.そしてその印刷結果は非常に薄かったとしよう.プログラムの実行が失敗に終わった,という事実を隠しきれなかったとき,彼はこんなことをいう.


 「あのキーパンチのオペレーター,またやったぜ.」
 「あのオペレーターのやつ,カードの順番を間違えやがった.」
 「あのカードパンチは,いつになったらコピーミスをしなくなるんだ.早く修繕してくれなくちゃ困るよ.」


 これらの嘆き節には何千種類ものいい換えがあるが,その中にただ一つ,ずばり


 「おれ,またやっちゃった.」


というのだけは,どういうものか決して聞くことがないように思われる.もちろん失敗がもう少し微妙で,(出力が何も出なかったといったような)無視しようのない完全な失敗ではなかった場合には,認知的不協和の解消はもっと容易である.誤りがそこにあることを見落としさえすればよい.そこのところで思い違いをしてはならない.人の目は,見たくないものを見ないようにすることにかけては,ほとんど無限の容量を持っているのだ.他人のプログラムの虫取りを専門にしている人々に聞けば,その事実を文字どおり何千もの実例に基づいて立証してくれるだろう.プログラマは,勝手にやらせておくと,自分のプログラムの出力にまぎれもない,ほかの人なら瞬時に気づくような誤りがあっても,それを無視してしまうものなのだ.だからもしわれわれがよいプログラムを作るという問題に挑戦したいと思うなら,そしてまず仕様に合ったプログラムを作るという,一番基本的な段階から手をつけようと思うなら,間違っていることを示す動かしがたい物的証拠を目の当たりにしながら,「自分」のプログラムは正しいと信じ込むという,人間にとって完全に正常な傾向について,何らかの手を打たなければならないのだ.(p. 79)

設問 (p. 93)

三,読者は自分が作ったプログラムを「私の」プログラムと呼ぶか.一週間の間,プログラムについては所有代名詞を使わないようにしてみよ.そしてどういう現象が起こったか記録せよ.

四,読者は「自分の」プログラムに生じた誤りゆえに他人を非難したことがあるか.読者はキーパンチとか磁気テープといった無生物を非難したことはないか.それらの人々や無生物に対する非難が正当であった経験が,何回ぐらいあるか.

五,読者は「自分の」プログラムの誤りを「運が悪かった」せいにしたことがあるか.そういうことは,どのくらいしばしばあるか.ほかのプログラマたちも,読者と同程度に不運か.もしそうでないのなら,どうして運命は自分にだけ辛く当たると思うか.運命の怒りを鎮めるために,どのような儀式を執りおこなったらよいと思うか.


プログラミングの心理学―または、ハイテクノロジーの人間学 25周年記念版

プログラミングの心理学―または、ハイテクノロジーの人間学 25周年記念版