プログラマの夫とその妻へ

プログラマの夫にお使いを頼んだら……

"Could you please go shopping for me and buy one carton of milk, and if they have eggs, get 6!" A short time later the husband comes back with 6 cartons of milk. The wife asks him, "Why the hell did you buy 6 cartons of milk?" He replied, "They had eggs."

「お使いを頼むわ、牛乳を1パック買ってきてちょうだい。卵があったら6つお願い!」しばらくして夫は牛乳を6パック買ってきました。妻は聞きました。⁠なんでまた牛乳を6パックも買ってきたのよ?」そこで夫は答えました。⁠だって卵があったよ」

引用元:reddit.com
参考:デイリーニュースエージェンシー

これは最近流行った「プログラマの夫にお使いを頼んだら……」というジョークだそうです。プログラマとしては放置できないネタではないでしょうか。

プログラマ思考の恐ろしさ

おわかりかと思いますが、プログラマ的にはIf文を使ったプログラミングに置き換えてしまい、

  • (もし卵があったら)
  • (牛乳を 6 買ってくる)
  • (もしなかったら)
  • (牛乳を 1 買ってくる)

という命令と解釈するわけです。

この夫、まるで融通のきかないコンピュータを思わせますね。本当にこんなことが起こったとしたら、何か別の考えごとをしながら妻の依頼を聞いていて、つい無意識のうちにプログラマ思考で解釈してしまった、というのが真相でしょう。でも、これに近い経験がジョークにリアリティを与えているのでは?と勘繰りたくもなります。

妻がプログラマ?

夫が1ビット単位の間違いも許さないコンピュータだとすれば、実は妻のほうが未熟なプログラマだったという風に視点をシフトすることができるかもしれません。

プログラミングは、コンピュータへの命令を伝えるものですよね。プログラムが正しく動くには、

正しく動くアルゴリズムを選び、正しくコード化し、正しいデータを与えて、正しいマシンで実行する

『できるプログラマになる!"伝える"技術』より

といった条件がぴったりあてはまる必要があるのです。とても厳しい条件ですね。

今回のケースでは正しい結果が得られず、夫への依頼がうまくいっていなかったということになるかもしれません(などというと、世の奥様方を敵に回してしまうかも……⁠⁠。夫を上手にコントロールするには、どう頼めばよかったのでしょうか。

プログラミングは説明

ここでさりげなくご紹介した弊社新刊『できるプログラマになる!"伝える"技術』では、プログラミングを「コンピュータへの説明」と見て、その能力を鍛える方法論などを紹介しています。実際、ご紹介したジョークに見られるように、プログラミングは妻と夫のコミュニケーションに通じるものがあります!?

プログラムにはたいていバグがあります。次のような知識があると、コミュニケーションに少し寛容になれると思うのです。

現実にはプログラムに「バグがない」という状態はあり得る。ただ、そのことを証明するのが、理論的に不可能なだけである

『できるプログラマになる!"伝える"技術』より

プログラマの説明相手はコンピュータだけではありません。実はあと2者いるのですが、本書で確認していただければと思います。プログラマの夫とのコミュニケーションにお困りの奥様にもおススメ……というのは冗談です。

コミュニケーションの探求のために

ところで万一、このジョークに出てくる妻のお願いを読んで、コミュニケーション能力が不足していると本気で考えてしまったプログラマの方がいらっしゃいましたら、ウィトゲンシュタインの言語ゲームなど学ばれるとよいかもしれません(筆者は本気で、こういう論理的思考に悩まされている方を心配します⁠⁠。入り口としてはちくま新書の『ウィトゲンシュタイン入門』がおススメです。

たとえばあなたが果物屋さんだとします。⁠赤いリンゴ5個」と書かれた紙きれとお金を持って、お店にやってきた子どもがいたらどうします?