変数「箱」に例えられがちな件について




プロクラスの森です。

世の中にはプログラミングの入門書いっぱいありますけど、その中で前から不満に思ってたことがありまして。今回はそれについて話そうと思います。

変数「箱」に例えられがち問題

変数、どんなプログラム入門書でも
値を入れておく「箱」だよ
みたいに書いてあることが多いのですが、やっぱり「箱」っていう例えは漠然としすぎだと思うのです。

変数って「コンピューターの記憶する部分に、一つ枠を作って情報を保存して、それをいつでも読み出せる」ということなので、箱に例えるのは、まあ間違ってはいないけど。

「ーどのくらいの大きさの箱をイメージしたらいいですか」
「ー手のひらサイズですかイナバ物置くらいですか」
「ー引っ越しの時の段ボールが浮かんだんですけど中身何だったか忘れました」
とかめっちゃ言いたい。

変数の例えに「箱」という言葉を使うせいで、最初に振り落とされたプログラム入門者、いっぱいいると思うんですよね。

整理整頓できない人

私の例でいうと、大学生時代にFlashのAction scriptの授業で初めてプログラミングに触れた時、変数を「箱」って言われて、全然ピンとこなかったことがあって。
なんでかと言うと、私にとって「箱」って自由に中身が取り出せないものなんですよね。悲しいことに。

・一度入れたら二度と出さない(次の引っ越しのときまで出さない)
・確かここに入れた気がするけど、中身を全部出さないと何が入ってるか分からない
・散らかっていたモノを、とりあえず全部入れて、ブラックボックス化してる

そんな私にプログラムの適性があるかないかでいったら「(たぶん)ない」寄りだと思いますが、それでも、

「全ての人間が、箱にものをきれいに入れると思うなよバッキャロー」って言いたい。
「先生の部屋は、無印良品みたいに箱がきれいに整頓されてんのかもしれないけど、全ての人間がそうじゃないんだよコンニャロー」って声を大にして言いたい。

できる人/できない人

2行でまとめると、

・プログラマー、「箱」で整理整頓できる側の人だから、変数をすぐ「箱」に例えがち
・でもプログラムを理解してない人にとって「箱」という例え、変数のイメージとかけ離れすぎてて伝わらながち

という問題を提起したいのです。

まあ、箱を使って論理的に整理整頓していける人こそが、プログラマーに向いているわけで、そういう人にとってはそれでいいんだけど。

でも、プログラミング教育が小学校の必修科目になると「うんこうんこーッ」って言ってるような子にも伝わらないといけないじゃないですか。

そういう子に変数を「箱」って例えても興味持たないと思うんですよね。
変数は、キテレツ大百科に出てくる天狗の抜け穴くらい便利だと思うのですが、「箱」っていうと、地味すぎてピンとこないと思うのです。

今の時代の例えとして適切なのか

変数の

・入れたものを一定の範囲に共有できる
・入れたものは別の場所から操作できる

というメリットを伝えないといけないので、例えば

「SNSで写真をアップすると、自分以外の人にも見れるようになるでしょう。変数を作るのは、そのSNSのアカウントを作るようなものなのよ」
みたいなほうが、まだ「おっ」っていう感じしませんか。どうでしょうか。

まあ今は、Scratchのようなビジュアルプログラミング言語を使って、実際に動いているところを見て理解してもらう、といった教え方ができるので、別に例えは何でも構わないんですけど。
でも、入門書に「変数は箱だよ」って書いてあるのを見るたび、また「箱」かーと思ってしまうのです。

なんかもっと…こう…ワクワクする感じで…

これは夢枕獏の小説、陰陽師。文庫版。
平安時代の京都で、陰陽師の安倍晴明と、その親友である源博雅が、鬼の関わる事件を解決していく話です。

博雅が、陰陽術とはなにかを晴明に尋ねるシーンがあるんですが、晴明曰く「この世で一番短い呪(しゅ)は名前」だそうです。
呪(しゅ)というのは、いわゆる「術」のことなのですが、その一番短いのが名前で、名前をつけることで物を縛(操)ることができる、と晴明は言うのです。

もう、なんかこんな感じで変数のことを例えてほしい。

…そして二人は、鬼が出るという羅城門に向かい、鬼に名前を聞かれてうっかり名乗ってしまった博雅は、金縛りにあって動けなくなってしまいー

マンガも読めーッ

ちなみにこれは岡野玲子の漫画版、陰陽師。
博雅の吹く笛の音が美しすぎて、鬼も野盗も襲ってこない(博雅本人に自覚なし)というシーンが、13ページくらい使って描かれていたりして、おすすめです。
特におすすめなのは、原作小説の全6編が描かれている1〜4巻です。