MAGAZINEガジェット通信を≫@getnewsfeedさんをフォロー-プログラミングをする学生が減っている?──今日はせっかくこの御三方が集ってらっしゃるので、もうちょっとプログラミングの現在みたいな話も聞けたらと。まつもと:私の友人で、母校の大学で情報科学を教えている人がいるんだけれど、プログラミング経験者の割合は、むしろ下がっているって言っていましたね。コンピューターサイエンスの学科なはずなのに。その一方で、インターネットのおかげで、興味があるとどんどん進むので、できる子のレベルはどんどん上がっているという。すそ野が広がって、でも、プログラミングしている子の割合は減って、できる子との格差はすごく広がっているという状況があるんじゃないか。僕は若い子向けのプロコンとかの審査員もやっているんですけど、例えば、ちょっと前までU-20のプロコンとかだと、2、3年に1回ぐらい、言語を作ってくる高校生がいました。遠藤:言語を(笑)?まつもと:僕が審査員にいるからかどうかわかんないけど。「こんなプログラミング言語作りました」とか言われて、結構その出来がよかったりするんです。遠藤:ヤバいじゃないですか。まつもと:ちょっとヤバい感じ。増井:それ、パラダイム的にはどの辺なんですか。まつもと:そのときは、オブジェクト指向言語なんだけど、Pythonっぽい文法と、マジでガチのマクロがあるというのを持って来た子がいて。増井:ええ?私はそんな言語作れないなぁ。まつもと:で、ガチで作って、その子は後に筑波大行って、僕の後輩になりました。──そういう、傑出した子もときどき現れるような時代にはなっている?まつもと:私が高校生のときは、インターネットは当然なかったので、情報を手に入れる方法が、例えば、紙媒体、雑誌とか本しかなかったんですね。私は高校生からプログラミング言語には興味があったんだけど、例えば、本屋さんに行って、プログラミング言語についての本とか見ると、大学の教科書ぐらいしかないわけですよ。『やさしいコンパイラの作り方』(中西正和著)みたいな本があってですね。読んだら全然優しくなくて(笑)。優しいというのはコンパイラの文法が複雑じゃないっていう意味だけで、中身は全然優しくない。増井:僕も高校のときは、まだインターネットがなかったので、それこそ雑誌を買って、たまに図書館行って、それこそコンパイラの本とか読んでいました。コンパイラ自体は高くてとても買えなかった。まつもと:それが今だと、開発環境もインターネットでどんどんダウンロードしてこれるし、Windows使っていてもVMwareでLinuxをインストールしてもいいし。世の中には、もう、6歳ぐらいからプログラム書いていますみたいな子もいる。増井:あと、人が発見されるのも楽になったと思うんですね。できる人がいても発見されなかったし、その人が仮に高校生で言語作っても絶対発見されなかったのが、ネットのおかげで発見されるようになったというのが、結構大きいと思いますね。まつもと:ただ、昔も中島聡(UIEvolution/Founder)さんみたいな、高校時代からアスキーでバイトしていて、「GAME」という名前のBASICの短縮版みたいなやつ作った人もいて、それを雑誌に投稿しているような人もいたけれど。プログラミング言語を作りたいと思うきっかけまつもと:そうそう。高校生でも言語作れる。いうの雑誌で見ているので、僕はだから、プログラミングをやっている人の中で、プログラミング言語を作ろうと思う人は、それなりにいると思っていた。蓋開けたら全然いなくてさ。自分がマイノリティであることに気がつくのがだいぶ遅れてしまいました(笑)。遠藤:言語を作ることにはそんなに前から関心があったんですね。まつもと:作りたかったんですよ。作りたいという気持ちだけが先行していて、能力と知識が全く追いついていなかった。増井:でも、後々追いついたのはすごいですね。まつもと:大学4年行って、社会人2年やったら、何とか追いついた(笑)。それにしても今の人って、どうやってプログラム学ぶんだろうとは思いますね。遠藤:そうなんですよね。いや最近、自分の子どもが2歳になってきて、そろそろプログラミングを......。まつもと:ちょっと早くない(笑)?増井:日本語が読み書きできるようになる前に、プログラムができることを目指すみたいな話かな。まつもと:僕の松江の会社の同僚が、「Rubyプログラミング少年団」というのをやっていて、自分の子どもが小学校中学年ぐらいになったので、自分の子どもに教えたいというのが動機なんだけど。彼が言うには、子どもたちが最初に引っかかるのが、キーボードが打てない、英語読めないということなんだって。多くの子どもたちにとって、英文をタイプしたり覚えたりするのが辛いという。それで、彼が始めたのが、Scratchみたいに簡単なタイルを並べながら学べるプログラミング言語。すると、子どもでもロジックを表現できて、プログラミングが何たるかがわかるというんです。進んでくると、タイル並べるだけだと表現できないロジックも出てくるし、100個ぐらいタイルが並んでいるとデバッグできなくなる。そこで彼が考えたのは、ボタンを押すと、そのプログラムがRubyに変換される。Smalrubyという言語。英文を覚え、キータイプをできるようになったらそっちのほうがいいのね。Smalrubyが面白いのは、逆のボタンもあること。Rubyでエディットしておいて、ボタンを押すと、タイルに戻る。まつもと:smalltalkに比べても、学習曲線がゆるやかで、覚えやすいし、使いやすい。それはそれで一つの面白いことなんだけども、もう一つ彼から聞いた面白い話は、大体、プログラミングに必要な抽象思考ができるのって、もちろん、人によって全然違うんだけど、多くの子どもは小学校3年生か4年生ぐらいじゃないかと。8歳とか9歳とかにならないと、抽象的な概念を理解するのは難しいというんです。増井:ところで、小学生で始めた子と、高校生で始めた子は、20歳ぐらいになったときに、違いは出るんですかね。僕、あんまり出ない気がするんですよね。早くやることがいいのか、どうなのが、あまりわからない。まつもと:今の社会システムだと、普通に人生を歩むと社会に出るのは22歳とかだから、そこより前にプログラミングを学んでたからって、そんなに大きな差がでるかというと、そうではないですね。ゲームを遊ぶのではなく、それを作る側に立つ子どもたち遠藤:そうですかねえ、いや、日本の子どもは九九を小学校2年生で覚えますけど、大きくなってから覚えても使いこなせるようになるのは難しいと思うんですよね。子どもの頃から教えるというのは、すごく大切なことなんじゃないかなと思うんですけど。そもそもの話に戻るんですけど、今の子どもって遊びたいと思ったら、ゲーム、いくらでもあるじゃないですか。それをあえて、Smalrubyなり何なり、自分で何か動くものを作って遊ぼうというところにいく、その動機がないような気がしていて、それが、一番、気になってるんですよね。まつもと:そういう動機そのものがない子もたくさんいるだろうねえ。その一方で、例えば、ありもののゲームを買ってくると、やっぱり、チートができないじゃないですか。自分でルールを決めたい時には、そのゲームを作る側に回らないとできないんでね、その辺にモチベーションを持つ子というのは、いるんじゃないかなと思うんだけど。ゲームを遊ぶ側で終わる子はたくさんいるんだけど、クリエーターに回りたい子供というのは、それなりにいて、いろんなかたちでクリエイティビティを発揮する。その中の一つにプログラミングがある。機会を与えさえすれば、ある一定の割合では出てくるんじゃないかと。増井:僕は、でも、その割合がそんなに高いとは思えない。アニメを見るのと、絵を描くのは、やっぱり、違うような気がするので。まつもと:アニメが好きな子も、一瞬ぐらいはアニメーターになろうとは思うかもしれないけど、実際、なれるところまで精進する子というのは少数派だよね。増井:でもやっぱり、漫画を書きたい子は書きたい。それを書きたいと思ったときに、書きたい環境があるのは、すごい大事だとは思う。するとあれですね、子どもにお父さんと同じ趣味を持ってもらえるかどうかは、かなり運にかかってくるわけですね、この場合。まつもと:まあ、僕の子は1人もコンピュータに関心がないからね。遠藤:それは、残念ですねえ(笑)。まつもと:一族探しても、コンピュータ関係の仕事をしているの僕だけだし。増井:だからこそ、子どもがお父さんと同じプログラマになりたいという発言をしたりすると、本人が大喜びする。まつもと:まあ途中で脱線するかもしれないけど、でも、うれしいよね、うん。遠藤:そうか、パソコンが広まったんで、プログラマとか、どんどん増えていくかなとも思ったんですけど、それでもやっぱり、作る側に興味を持つ人は限られるということは、プログラマが増えるとも限らないということですかね。まつもと:機会を与えようっていうカリキュラムは、どんどん増えてくると思う。それに今は、誰の家にもコンピュータがあるので、そういう意味で言うと、誰にもチャンスはあるんだけど、今度は教える人がいない。子どもはパソコンを使うんだけど、やるのは何かと言うと、YouTubeを見る、ニコニコ動画を見る。増井:Facebookに書き込む(笑)。まつもと:でも、それって、プログラミングの経験はしてないわけじゃない、パソコンはあっても。学校の授業とかで、簡単なものでいいから、プログラミングの経験をする機会が幅広く与えられていれば、その中で興味を持つ子が一定の割合でいるはず。そこでその子をピックアップできるような仕組みというがあるいいと思うんですよ。プログラミングという科目があって、一通り教養としてやっておいて、興味のある子はバンドを組んだり、サッカーチームに入るようにする。プログラミング少年団に入って、それでもオタクとか言われないで、普通に「ああ、あの子は野球する、この子はサッカーする、この子はプログラミングをする」って認められる社会になれば、もうちょっと、プログラミングの裾野が広がるんじゃないかなあと思う。実は来年度から、松江市の全中学生は、授業でSmalrubyやることになった。学校ではやれることが限られるので、その先は、少年団でカバーしようかなと思って。松江市はもう7年ぐらい前から、中学生Ruby教室というのやっているのね。その第一期生は、去年、高専を卒業してRubyプログラマとして就職したんですよ。