「自動販売機の気持ちになって考える」

no extension

結城浩さんの tweet

というのがあって,続きの tweets から見ても(プログラミングというよりは)システム設計(もしくは base design)のことを指しているのは明らかなんだけど,私が連想したのは梅津信幸さんの『あなたはコンピュータを理解していますか?』だった。

この本は2002年に出版されていて,これ自体は恐らく絶版なのだが,2007年にリニュール本が出ているようだ。 さっそく発注してしまった(笑)

この本で一番印象に残っていたのが第3章の「自動販売機はコンピュータ理解の始まり」である。 この章では

  1. 客がお金を入れる
  2. 客が商品(ジュース1本)を注文する
  3. 自動販売機が商品を出す
  4. 自動販売機がお釣りを返す

という流れを人間がシミュレーションしていて,特に「機械がお金を計算する」方法について図解で説明されているのが秀逸だった。 つまり「自動販売機の気持ちになって考える」わけだ。

機械は人間のようには考えない。 「機械(=コンピュータ)が考える」というのはどういうことなのか。 これを過不足なく説明するのは意外に難しい。 用語を並べ立てて煙に巻くか,頭の悪い擬人化でお茶を濁すのがせいぜいだろう。 私もちゃんと説明できるか自信がない。 でも,それを考えるのがプログラミングの最初の1フィートである。

どうせ学校教育でプログラミングを教えるのなら,「自動販売機の気持ちになって考える」からやっていただきたいものだ。 「プログラミング言語」なんか必要ないのである。 機械が人間の書いたプログラムを「理解」して実行する,というのは大いなる誤解である。 たとえば,そうした誤解が「シンギュラリティ神話」へ向かわせるのなら「プログラミング言語」を習うとかむしろ有害かもしれない。

学生の時に読んだ「日経サイエンス」の記事にティンカートイで3目並べを解くプログラムを組む話があったが1,どんなにコンピュータ技術が発達しても(量子コンピュータが登場しても)スタートラインは常に「ここ」なので,それを忘れないでほしいのですよ。

まぁ,本気で AI が発達してノイマン型コンピュータが廃れたら説明の根本が変わるだろうけど,それは当分先の話(多分)。

参考図書

photo
あなたはコンピュータを理解していますか? 10年後、20年後まで必ず役立つ根っこの部分がきっちりわかる! (サイエンス・アイ新書)
梅津 信幸 (著)
ソフトバンククリエイティブ 2007-03-16
新書
4797339497 (ASIN), 9784797339499 (EAN), 4797339497 (ISBN)
評価     

2002年に技術評論社から出た同名タイトルのリニューアルらしい。

reviewed by Spiegel on 2017-11-24 (powered by PA-APIv5)


  1. この話「三目並べをするティンカートイ・コンピュータ」は『別冊日経サイエンス コンピューターレクリエーション 4 遊びの展開』に収録されていたのだが,絶版本とは言え,どえらい値段がついてるな(笑) ↩︎