そのジャンルの「面白さのスタイル」を知ることが「学び」だ
今年の夏、株式会社UEIの清水亮社長に誘われて長岡まつり大花火大会に出かけたら、翌日(8月4日)「中学生向けのプログラミング教室をやるのでエンドウさんも喋ってくださいよ」と頼まれた。清水社長とは、去年から「全国小中学生プログラミング大会」というコンテストもやっている(NPO法人CANVASの石戸奈々子さんも一緒だが=〆切が9月15日)。
私は、PC雑誌『月刊アスキー』の編集に15年もたずさわっていたので、コンピューターの「面白さ」を伝える仕事をしてきたのだと思う。そこで、「コンピューターはなぜ面白いか?」という話をさせてもらうことにした。
「面白く」と「面白い」は、似て非なる領域の概念である。興味のない人から見れば、「知らない事柄」は、その人にとって「面白くない」ことがほとんどである。それを、無理やり面白おかしく紹介してもそこで興味も終わることが多い。私の場合は雑誌だが、メディアはここで2つに大きく分かれるのだと思う。
それよりも、どんなにお堅いむずかしい事柄も「面白がって」伝えることだ。「面白い」とは、ふだんの自分をコントロールしている意識ではなく心が勝手に踊ることなので、すなわち「理解」ということと直結している。数学者が、どんなときに笑うかを考えてほしい。そのジャンルごとの「面白さのスタイル」を知っていくことが、すなわち「学び」なのだ。
どうも理屈っぽくなってきてしまったので、中学生たちにどんな話をさせてもらったかを紹介させてもらうことにする。
コンピューターは、何を目指して作られてきたかというと「人工知能」や「ロボット」の世界だろう。18~19世紀にヨーロッパでチェスをする「トルコ人」という自動人形が人間を負かすほど強いと話題になった。ところが、中に人間が入って動かていた偽物だったというのは有名な話だ。しかし、それで話は終わらない。コンピューター以前の1912年に、スペインのレオナルド・トーレス・ケベードという人が、本当に"詰めチェス"をする機械を作ってしまっている。
人間は、自分たちと同じものを作り出そうとすることで、自分たちのことを知ろうとしている。それは、あらゆる知的好奇心の中でも(誤解を恐れずにいえば)最もエロチックな体験といえる。
NHKの『新・電子立国』にも出てきた話だが、マイクロソフトの創業者ビル・ゲイツ氏は、高校生のときに「三並べ」(いわゆる〇×ゲーム)のプログラムを書いたそうだ。当時の有名な三並べのプログムといえば、(1)乱数でデタラメな手を打つ。(2)負けたらそこまでの手順を記憶。(3)打とうとした手が過去負けたのと同じ手順だったら別な手を試みる。初歩的なプログラムなのに、これを、繰り返しプレイすると人間に負けないようになる。
プログラムを書くことと、数学の問題を解いたりパズルを解いたりすることは根本的に違う行為である。TRONの坂村健さんと話をしていたら、パズルを解くようなことは「デタミニスティック(deterministic=決定論)的だろう」と言われた。山に登るのはデタミニスティックだが、登山鉄道のしくみを考えるのはプログラミング的だということだ。この違いはとても重要なのだが、子どもにプログラミングを教えるときにも混同しがちである。
コンピューターで表計算ソフトを使えば、タテ・ヨコの集計計算があっという間にできる。いわば計算の天才になったようなものだ。プログラミングまではいかないが、グラフィック系のソフトを1つ覚えて人生を変えた人はたくさんいる。コンピューターが発生させる「全能感」(なんでも持って来い的できる感)は凄い。この全能感を人工的に演出しているのが「ビデオゲーム」だと考えてもよい。スーパーマリオブラザーズで、スーパーキノコを取った状態のようなものだ。
任天堂は、初期にポパイをキャラクターにしたゲームも作っていたが、ポパイのホウレン草もその気持ちよさを演出したものだ。ゲームやマンガの全能感は演出なので「ウソっこじゃん」と言うなかれ、人間の脳はワガママなので、この性質を応用する研究もさかんである。むしろ、デジタル化された社会では、実社会もゲームの中で暮らしているような方向に向かうだろう。
いまの中学生は、米国では「ジェネレーションZ」と呼ばれる世代に入る。いちばん新しい世代なのだが、この名前が象徴しているのは彼らがフルに活用しているネットやスマートフォンは20世紀の最後の遺物ではないかということだ。ブロックチェーンや量子コンピューターによって、人類はじまって以来常識だったものをも大きく覆される可能性がある。そんな時代の一大転換点をスペシャルラグジュアリーシートで堪能できるチケットは、自らその世界に飛び込むことだ。
テクノロジーの歴史とはそんなものだといわれればそのとおりなのだが(バターフィールドの『近代科学の誕生 上/下』を読むとよい)、人間の想像力というのはたいしたことはない。ドローン(UAS=無人航空機)を、空想科学を標榜するSF分野の作品は描いてこなかった。いまや誰でも買えるありふれた存在としてのドローンだ。さすがに、近年のオンラインゲーム(『Call of Duty 4: Advanced Warfare』など)では小型の多数のドローンが襲ってきたりするが、いまさらなんだよという感じではないか?
1990年代はじめ米国では情報スーパーハイウェイ構想が叫ばれ、ネットインフラが整備されればさまざまなことが可能になると言われた。コマースやオフショアやバーチャルユニバーシティやサプライチェーンマネジメントなどだ。ところが、当時、いまネットをドライブしているフェイスブックやユーチューブやグーグル検索に相当するものすらぼほ想定されていなかった(モバイルは注目されはじめていたしシェアリングエコノミーなどはネット以前の生産消費者に近いお話なのかもしれないが)。
ネットやデジタルの世界では、たった1人、あるいは数人の活動が本当に世界を変えることがある。なにもグーグルやアップルのような大企業にならなくてもいい。ソフトやハードウェアを世界に売り出していくためのしくみが整備されてきている。そのために特別なセンスや能力が必要なのか? アイデアさえあればいけるのか? いろんな話があるが、前提としてコンピューターのある世界に接することだ。
これこそ中学生たちに話すべきなのに、当日は、このシートを作り忘れて口頭になってしまった。ジョブズばコンピューターの天才でもなんでもないが、ウォズニアックという友だちがいた。コンピューターの世界は1人ではなくチームを組んでやるとうまくいくことが多い。ソフトウェア、ハードウェア、使いやすいデザイン、コンセプト、お金集めやプレゼンテーションなど、みんなが優等生である必要はない。お互いの得意・不得意を認めあって1つの目標をめざす。
結局、コンピューターやプログラミングで作るしくみは、それを使う人々のためにやっている。たとえば、同僚にエクセルのマクロを作ってあげるのでもいい。パスカルが、計算機械(パスカリーヌ=1645年)を作ったのは、徴税官だった父の仕事を楽にしてあげたいと思ったからだそうだ。元マイクロソフト会長で現在は慶應義塾大学大学院教授の古川享さんに、プログラミングに関するイベントに登壇いただいたら「身近にいる人がもうちょっと楽に、もうちょっと幸せに、という気持ち。それは僕らのこの仕事の原点だよね」と発言された。その延長にすべてのコンピューターがあるとしたら楽しいことだ。
いまどき「誰かの役に立つ」ということを実感できる仕事というのはそんなにあるだろうか?
人工知能の時代になったらいよいよプログラミングが重要になる
さて、ここまでのお話は、さらに1カ月ほど前に大学生400人にした内容とすこし重なる部分がある(さすがに内容もだいぶ違うし時間も何倍もあったのだが)。そこでは少し触れたのだが、「これから人工知能の時代になってコンピューターやプログラミングを学ぶ必要があるのか?」について補足しておくのがよいかもしれない。
人とコンピューターは、早晩、人間の使う「ことば」によってコミュニケーションするようになるという意見がある。そのときに、人のほうはかなりいいかげんなので、人とコンピューターはコミュニケーションの質的にアンバランスな状態になる。そのときに、人とコンピューターのあいだで誤解が生じないために、いわば合意言語としてプログラミング言語は残り、プログラミングは必要であり続ける。ブロックチェーンとそうした言語の組み合わせが、人間がコンピューターと平和にやっていけるかどうかのカギを握るのではないかと思う。
まあ、人間の想像力はたいしたことはないのでこれも大外れなのかもしれないが、実のところ、こんなふうに未来を考えたくなることもコンピューターの「面白さ」である。
私の話は、長岡の中学生たちにコンピューターの「面白さ」は2ミリくらいは伝わっただろうか? 最初のところで触れた「第二回全国小中学生プログラミング大会」は、後援に文部科学省(予定)、総務省、経済産業省についていただき、朝日新聞社が共催で開催。使用言語を問わず、技術力だけでなくアイデアやコンセプトも評価されるコンテストだ。今年は応募〆切がすぐだが、近くに小中学生のいる方は公式サイトをご覧いただきたい。
(2017年9月13日「遠藤諭のプログラミング+日記」より転載)