たけ(tk)です。

[ruby-list:38195] 理解の進め方(Re: String << の動作につきまして) にて 
Tadashi Oh-Ya <toy / k-cable.co.jp> さん 曰く:

> スレッド切っちゃいます ;) 御了承のほどを。

 それの方がよさそうな気がします。

> > そもそも、僕は、たけさんの説明がわかり易いと思えませんし。
> > 
> で、あるならば。
> 「こーいう説明もありなんじゃない?」という内容で一筆起こされ
> てみてはいかが? :)
> 
> 我々はそのための手段(Web|Mail)を持っているわけですしね ^_^
> 
> いろいろな理解の筋道が存在するのは、悪いことではない(と言う
> よりむしろ良いこと)と思いますよ :)

今やろうとしていることはプログラミングの世界を日常用語で初心者にも分かり
やすいように説明したい、ということです。

ただし、プログラミングの世界を日常用語で説明する、というのは突き詰めて考
えれば必ず破綻します。

そもそも、プログラミングの世界は日常世界からみればシュールな世界だからで
す。たとえば、

kuruma = "車体番号123のベンツ"
kuruma2 = kuruma + kuruma

というプログラムでは、2行目の左右のkuruma変数は同じオブジェクトを指して
います。つまりこの行は「一つのオブジェクトを二つ使って」新しいオブジェク
トを作っています。いわば世界に1台しかないベンツを2台結合する、というよ
うな処理を行っています。そうとうシュールです。

もちろん、2つの車庫に同じ1台のベンツが入っている、というのもシュールで
す。(変数=箱説の破綻)

しかし、名前説も破綻します。

kuruma1 = "車体番号123のベンツ"
kuruma2 = "車体番号234のベンツ"
kuruma2 = kuruma1

このプログラムでは、最初は2台のクルマがあったのに、「kuruma2 = kuruma1」
で"車体番号123のベンツ"にkuruma2という名前をつけた途端に、"車体番号234の
ベンツ"が消えてしまいます。かなりシュールです。

名札説では「クルマに名札を貼りつけたはずなのにクルマを調べても名札が見つ
からない」というのも、かなりシュールな名札ということになります。

この論争は、「光は波か粒子か」という論争を思い起こさせます。光には波とし
ての性質と粒子としての性質とがあるのですが、日常世界ではそのようなモノは
存在していません。つまり、日常世界の感覚からすればシュールな存在です。
「光は波である」という説明も、「光は粒子である」という説明もどちらも突き
詰めていけば破綻してしまいます。

では、「光は波である」、「光は粒子である」という説明が無意味かというと、
そうではなくて、最初のとっかかりとしては役に立つでしょう。その説明である
程度進めた後で、「実は粒子/波としての性質もある」としてシュールな概念に
進めていくのがよさそうなのです。

変数の本質についても、初心者に対するとっかかりの説明としては、箱でも名札
でも名前でもかまわないと思うのです。ただし、どの説でも破綻するので、その
破綻を説明して実はシュールな存在なのだと理解してもらえばよろしかろうと思っ
ています。

そういう観点から [ruby-list:38204] のような説明になっております。

take_tk = kumagai hidetake