Oh 脳《122》変数には値を代入できない:代入vs.束縛
|記事一覧|Oh 脳: after ZERO《其之佰弐拾弐》
変数には値を代入できない:代入vs.束縛
■ 関連記事
- 《余録》代入 vs. 束縛《Python3.1》
- 《余録》代入 vs. 束縛《Jython2.5.0》
Smalltalk-80 セミナーの講師を勤めていた 1988 年頃にも、C/C++ プログラマーを相手に「代入と束縛との違い」を説いたものです。その状況は、20年後の今も変わらないようです。すると、思い出されるのは…
Python の 公式 文書にも、
Assignment statements are used to (re)bind names to values and to modify attributes or items of mutable objects:
とあるにもかかわらず「変数に値を代入する」という(C言語から伝承される)伝統的なモデルへの未練を断ち切れないのは何故でしょうか。「アナログ Java/C# 思考」から「ディジタル Ruby/Python 思考」への扉を開く鍵は、こんなところにも落ちています。それを拾って、自分も新たな世界の住人になれるかは、受講者のみなさん次第です。
「 違い が分かる」プログラマー を目指して、受講者のみなさんが「はじめに」何を知っておくべきか。それが「はじめの一歩」から「末の千里」へと繋がります。
《余録》その違いはさておき…
「これらの違いは…」と、ここで雑学を披露することはしません。むしろ、受講者のみなさんに考えて欲しいのは、次のようなことです。どうしても知りたい…という方は、セミナー会場で…(^.^)
■「もりそば」と「ざるそば」との違い
よくある誤解が「海苔の有無」というものです。すると「海苔だけでこうも値段が違うのか」ということになりかねません。空腹を満たすだけの客にとって、その違いは取るに足らないことでしょう。しかし、蕎麦職人(プロ)を目指す修行の身ともなると、話は違います。行列ができる評判の店で「海苔があるかないかの違いだよ」と言われたら、その店で修行を積みたいとは思わないでしょう。
■「そうめん」と「ひやむぎ」との違い
日本農林規格(JAS規格)では、その違いを麺の太さ(直径)で区分しています。いかにもお役所仕事というか、役人の浅知恵と言われかねません。食の安全や小麦粉の確保に尽力する様を強調しても、食文化の伝承には無頓着ということなのでしょう。手打ちうどんが醸し出す風情など、霞ヶ関のビル街からは望めない風景なので、それは無理からぬことかもしれません。
■「整理」と「整頓」との違いは?
クラスやメソッドを使うだけで、OOP を実践しているかのように錯覚に陥ります。確かにそれだけで、コードは「整頓」されて見栄えも良くなるので、それを自慢したくもなることでしょう。しかし、メソッドの中身を見ると、伝統的な if 文/for 文/配列への未練を「整理」できていないコードが散在しています。見かけ倒しの OOP という事例には、枚挙に暇がありません。