ザッツ15 「プログラミングの世界は、織物の世界だ」 豊かなイメージをより具体的なものにする 2001年7月24日

2001年7月19日。この日は、僕にとり、とても大切な一日となった。パソコンを導入して2年4カ月たったその日、僕のプログラムが動いたのである。といっても実に簡単なものであった。画面上に「「こんにちは、パール君。お元気ですか?」という挨拶を表示するだけに過ぎない。ところがどっこい、その感激ったら、嬉しさのあまり、崖から海に飛び込んでしまいたいほどだった。僕は、この感動を一刻も早く、誰かに伝えようと思ったのであるが、「意外な反応」があり、このザッツ15を書くことにした。「意外な反応」とは、一言でいえば「そこまでやらなくても・・・」という反応であった。

僕はパソコンを買った時から「プログラミング」に挑戦したいと思っていたし、その言語として「ビジュアル・ベーシック」を購入したのは1年以上前のこと。ビジュアル・ベーシックの初級参考書を2冊買い(僕はいつも2冊買う。ホーム・ページの奮闘記にも書いているが、同じ項目の説明でも異なった表現であり、比較すると理解が早くなるからだ)、ペラペラめくっていたが、いつのまにか、遠ざかってしまっていた。僕は、当初「どの言語にしようか」と思案していたが、今から思えば、この態度は間違っていたようだ。プログラミングの世界は、プログラム言語の選択から入る必要はなかったのである。奮闘記その5の「テキスト・ファイルの一元管理の挑戦」で書いたが、僕のパソコンに「エディター」が活動してからというもの、パソコンの環境が一変し、プログラミングへの挑戦が、再び始ったのである

僕は「perl」というプログラム言語(出会いは、書籍の部屋を参照)をインターネットから40分もかけてダウンロードした。この言語は「文書(文字)の操作が得意」であり、もともとはUNIXで使われていたものらしい。ホーム・ページの掲示板なども、この言語で書かれているらしい。「じゃ、やってみるべェー」となった次第。僕は当面、「パール君」と付き合い、自分のホームページに伝言板を設置してみることにした。これ以下は、奮闘記に記録していきたいと思っている。白髪あたまの短気太郎の新たな挑戦(大袈裟?)だ。
ちなみに現時点でのプログラムは7つ。「分岐処理」「反復処理」の基本プログラムと「年月日時間の表示プログラム」まで進んでいる。画面上で「パソコンを相手にゲームみたいなことをして会話ができる」までになったことを報告したい。
たった7つのプログラミングを体験しただけで多くのことを学んだ(これはうそではない)。

さて、「僕の組んだプログラムが動いたよ」との感動に、「意外な反応」を感じとった僕は、「プログラムを組むのはなぜなんだ」という理由を考えてみることにしたが、その話をする前にどうしてもふれなければならない昔の思い出がある。僕が小学校の6年生の頃(?)だったと思う。僕の親父が「変な記号のある問題」を僕に解くように言った。当時、紙は貴重品で、裏が白い新聞広告でつくったノートであった。その記号は「∪∩⊆⊇」といったもの。これは「集合論」の記号であり、僕はとても興味があり、広告用紙でできたノートに、円を描きながら問題を解いだ思い出がある。実は、この「変な記号のある問題」の背景には、1957年、人類史上初めての人工衛星が打ち上げられた「事件」が関係していたらしい。世に言う「スプートニック・ショック」である。「ショック」を受けたのは、ソビエトと冷戦状態にあったアメリカであった。人工衛星の打ち上げは、本来なら宇宙への偉大な第一歩として祝福されるはずだったが、そこに戦争兵器の匂いを感じ取ったアメリカは、教育体制を根本的にみなおす方針をかため、とくに理数科系の教育改革を行ったのである。「アメリカが風邪をひくと日本も風邪をひく」ように、アメリカの数学教育の革新が、日本にも実験的に入ってきたのだろう。それに関係のあるのがこの「変な記号のある問題」だったのだ。当時「集合論」は高等学校で本格的に勉強するのが普通だったと記憶している。アメリカの数学教育の導入実験は、当時、国立大学付属小学校で行われていたと聞いた。僕は今になって、この「変な記号のある問題」こそ、プログラミングの世界にも関連している「演算」の初体験だったと気がついたのである。

パソコンが普及した今日、様々な仕事を「行ってくれる」便利なソフトが、比較的安く、しかも簡単に手に入る。「意外な反応」には、「そこまでやらなくても、便利なソフトがあるじゃないか」という考えがあるようだった。僕はこの意見に賛成でもあり、反対ではない。事実、便利なソフトをいくつも活用しているし、一方、逆に「巨艦ソフト」からの脱却をも試みている。

それでは、プログラミング学習の意義は、どこにあるのだろうか?僕は、奮闘記その3の「共通の手順」のところで次のように書いたことがある。

『人間のあらゆる行動は、「ある対象」に対して(いろんな対象から、「ある」対象を「選択」して)、「○○をせよ」(命令文=コマンドという)で構成されている。ところが、人間は、究極の物質である「脳」により「○○をせよ」と「命令」されて行動しているのだが、この「命令」の存在を日頃、気に留めることはない。あたかも、自由意志によって行動しているかに思っているにすぎない。パソコンも同じことだ。「ある対象」に対して、「○○をせよ」で、動いている。ただ、人間のように、自由意志(脳)を持たないので、「誰か」の「命令」を待っているに過ぎない。この「誰か」は、誰か?それは、「あんた」、苦労して買ったパソコンの持ち主である、「あんた」である。理屈っぽい僕は、まず最初の場面、「パソコンに電源を入れる」場面を考えてみた。「電源のスイッチを入れる」行動は、「僕のパソコン」(対象)に対して、「仕事をしたいので使えるようにせよ」と「命令」をしたのである。すると「電流」が流れ、「コロコロ」と音がして、「ウインドウズへようこそ」と、パソコンは「眠りから覚める(立ち上がる)」のである。忠実なパソコンは、息を吹き返し、「ディスクトップ」に様々な、「メニュー」を表示するのである。パソコンは「あんた、次は何すんの?」と聞いているのである。僕は、息を吹き返したパソコンに対して、次の「命令」をしなければならない。その「命令」をしない限り、僕の忠実な「部下」(パソコン)は、電気ばかり食いつぶすだけである。「沈黙」を守るのである。僕は、「次の仕事」をパソコンに「命令」しなければならないのだ。ひとことで言おう。「共通の手順」とは、「いろんな素材を選択して、それを使って料理(命令)すること」なのである。「なんだ、簡単じゃないか」(高倉健)。その通り、「簡単」なのである。味噌汁がつくれるあなたなら、パソコンは使えると思う。』と書いた。

もっと砕いて話そう。腹がへったあなたは、なにか作ろうかなと思いながら、冷蔵庫を開けるだろう。いろんな食材を前に、あなたは様々なメニューを思い浮かべるだろう。野菜トレイに目をやると、大根の白い肌が刺激的だ(?)。そうだ煮物をつくろうか。野菜の切れ端もある。まだ、しなびてはいないな、捨てるにはもったいない。あっ、そうだキンピラにしよう。だったら、煮物にする大根の白い肌もキンピラにすればいい。でも刺激的な白い肌は、キンピラじゃ台無しだな・・・。そうだ、みずみずしい大根は千切りにしてサラダにしよう。こんなふうに、あなたのイメージは、どんどん膨らんでくるだろう。さて、あなたは、いよいよ調理にかかる。飯も炊こう。ここからは、「あなたの段取り勝負の世界」だ。そうだ、材料をまずそろえよう。また素材によって切りかたを変えよう。味付けは、塩味がポイントだ・・・。あなたは、ここでもう、プログラミングの世界の真っ只中にいるのだと僕は思う。

プログラミングの世界は、あなたの豊かなイメージを実現する織物の世界と似ていると思う。あなたが抱いた模様のイメージは、最初は混沌として、ぼんやりしているかもしれない。あなたの目の前には、いろんな色の絡んだ糸球があるようだ。しかし、あなたは、一本一本の糸を解き始め「事を進める」ことだろう。すると、どうだろう、今度は、解いた一本一本のいろんな色の糸を、あなたは、自分の描いたイメージに従い、まずは編む作業をするに違いない。そして、何度も何度も、解きながら編み、編みながら解く作業を繰り返すことだろう。そのことにより、素晴らしい模様のイメージが次第に明確になるに違いない。ここまでくればしめたものだ。あとは一本一本を順序良く、編みこんでいけばいい。ぼくは、ここにこそ、プログラミングの醍醐味があると思う。プログラミングの世界は、あなたの豊富なイメージを、より具体的なものにする力を養う効果があるのではないかと思う。もっとも、あなたに、アナログな世界で耕して続けてきた、豊富なイメージを産みだす、栄養豊かな土壌がなければ、どうしようもないが・・・。

また、プログラミングの世界は、日常、なにげなく繰り返されている出来事の「本質を見極める力」を養うかもしれない。ニュートンが、リンゴの実が落ちるのを見て、万有引力の法則を発見したのも、これだ。着想とヒラメキこれこそプログラミングの世界の鍵だと僕は思う。

プログラミングの学習は、さまざまなソフトを使いこなす能力を高めることだろう。「ソフトに使われている」のではなく、「ソフトの持っている力を自分のものにする」のである。どんなソフトもすべては、一行一行のプログラム言語で書かれている。パソコンは、それを忠実に実行しているに過ぎない。パソコンは忠実な反面、プログラムされていないことはできないのである。プログラミングの世界から、自分が使用しているソフトを見直してみると、「思いがけない発見」があるかもしれない。「なぜ、こうなるんだ、おかしいぞ。どこかに問題があるのだろうか?」という問いが大事なのかもしれない。

ザッツ談の部屋に戻る