プログラミング。その意味を平たく言ってしまうならば、コンピュータに実行してほしい作業の指令、「プログラム」を作ったり、考えたりすることだ。
2020年、そんなプログラミングに関する教育の必修化が学習指導要領の改訂に伴って決定した。すでに小学校では2020年内に、翌2021年には中学校、高等学校での必修化がそれぞれ実施されている。
しかし、必修化に関しては反対意見も多々ある。たとえば、プログラミングを学んだからと言って「IT業界の職に就くとは限らない」、「教師や親が分からない」、「興味のある子にだけ教えればいい」、などだ。中には「将来的に役に立つはずがない」、「パソコンを持っていない子には負担になる」といった反対意見もある。
そのような世間の印象を改める狙い、需要の発生も踏まえてか、必修化が叫ばれて以降はプログラミングの仕組みについて学ぶ教材、おもちゃなどの商品が出回るようになった。今やその数は大幅に増え、ひとつの賑わいを見せている。
プログラミング教育の必修化が実施される少し前、2019年に発売されたソニー・インタラクティブエンタテインメント(SIE)開発のロボットトイ、『toio(トイオ)』もそんなプログラミング体験ができるおもちゃのひとつ。
小さなキューブこと「toio™コア キューブ(以降、キューブ)」に内蔵されたセンサーに命令を読み込ませ、特定の動作を実行させてストーリー仕立ての問題を解いたり、キャラクターを載せて踊る人形に仕立て上げたりといった、プログラミングからクラフトまで、幅広い遊びを楽しめるのを最大の特徴としている。
今回、電ファミはSIE社内にて『toio』を取材・体験する機会を得られた。当日はいくつかある『toio』シリーズタイトルのひとつ、冒険絵本『GoGo ロボットプログラミング™ ~ロジーボのひみつ~』を体験。ページごとに用意されたさまざまなミッションを特定の動作を読み込ませたキューブで攻略していくというものである。
動作の読み込みには「命令カード」と称されたものを使用。「いっぽすすむ」、「みぎをむく」などが書かれたカードをテーブルに並べて繋げ、ひとつの体系が出来上がったらキューブをカード上に設置。
すると、カードの上をキューブが歩き始め、並べたカード通りの動作、まさしくプログラムを読み込んでくれる。それを絵本のページ上に置けば、読み込んだ通りの動作をしてくれるのだ。
読み込んだ命令通りキューブが動く様子は、見ているだけでもワクワクしてくる楽しさがあるだけでなく、ページごとに用意された問題も多彩で、ひとつの思考型パズルゲームとしても完成度の高いものになっていた。
カードを並べ、キューブに読み込ませるだけの遊び方も、プログラミングの基本的な考え方を自然に理解できるものになっていて思わず圧倒された次第だ。
この『toio』の開発にてプロジェクトリーダーを務めたのが、SIEの田中章愛(たなか あきちか)氏である。今、プログラミング教育が本格的に進んでいこうとする中、田中氏はどのような思いを『toio』に込めたのか。そして、プログラミングとは何が楽しく、何が学べることに醍醐味があるのか?今の必修化が叫ばれる世間にどんな印象を抱いているのか。
聞き手にはかつてN高等学校のプログラミング授業にて教鞭を振るった凄腕プログラマー・草野翔氏をお招きし、その真髄に迫ってみた。その模様をお届けしよう。
聞き手/TAITAI
文/シェループ
撮影/佐々木秀二
編集/実存
おもちゃとしての出来の良さを追求した『toio』のこだわり
草野氏:
本日はありがとうございます。(『toio』を触ってみて)メチャクチャ面白かったです(笑)。
僕は5~6年前にN高(N高等学校)のプログラミングコースの教師をしていたことがありまして、「1年の内に生徒をプログラマーにしろ」と言われながらやっていました(笑)。
あの時代って、こういうプログラミングおもちゃとか、プログラミング教育が叫ばれた時代より少し前だったんですよね。
その後ぐらいになって、小学校でもプログラミングを教えた方がいいんじゃないの、みたいな話が出てきて。それで今、世の中はけっこう変わったなと思っているんですが、この『toio』って、いつごろから着想があったんですか?
田中氏:
そうですね……始まりは本当に今とは無縁の2012年でした。SIE社内に放課後活動的なところがあって、そこにアレクシー(アンドレ・アレクシー)というインタラクションやゲームの技術研究をしている人物がいまして。
僕はロボット絡みのハードウェアを作っていたので、彼と一緒にロボットハンドとゲームの技術を組み合わせたら、現実世界でゲームができるようになるんじゃないのか、自分の作ったおもちゃが動き始めたら面白いことになりそう、というところから始まりました。
草野氏:
これってかなりおもちゃに根ざしていますけど、真っ当にロボットとして売り出す気持ちとかはなかったのですか?
田中氏:
確かにすごくロボット的なものとして出すのもあったかもしれません。ただ、もともとこれを作りたかったのは、「自分たちが作ったレゴブロックの作品が動き出したら面白いだろうな」という気持ちが一番大きかったからなんです。
僕自身、研究者としてロボットをいくつか作っていますけど、やっぱり技術的にすごいからというよりも、楽しいから作りたいというのがありまして。そこを大事にしたいから、遊びを全面に出したおもちゃになりました。そのために必要な技術が集められて、このような形になったという感じですね。
草野氏:
おもちゃとしての出来の良さを大事にしたのですね。
田中氏:
そうです。やっぱり自分のおもちゃで何か作って遊びたい時って、理想的なイメージがまず頭の中にあって、それに近づけていくじゃないですか。頭の中の理想に近づけるように、言った通りちゃんと動いてくれるものの方が嬉しいだろうな、と。
草野氏:
なるほど。『toio』ってけっこう小さく作られていますけど、最初のプロトタイプからどれぐらい小さくなったのでしょうか?
田中氏:
プロトタイプではいろんなサイズを作りまして。中にはこの半分ぐらい小さいものもあったんです。一番よく使っていたのは、現在の倍ぐらいあるサイズのものでして、 レゴ®ブロックや人形を載せられたんです。
けど、その大きさだと「いかにも台の上に載って動いています」という感じになってしまうんですよね(笑)。それでは主人公になるキャラクターが目立たない。
逆に半分ぐらいにしてしまうと、小さすぎてすぐに倒れてしまったり、あとは電池が持たないという問題がありました。そういった試行錯誤の末にこの今ぐらいの大きさが丁度いいとなって、最終的にこのようになりました。
草野氏:
電池はどれぐらい持つのでしょう?
田中氏:
一応、フル充電すれば全く追加充電しないで2時間以上は動きますね。実際は使っていても3~4時間ぐらいは普通に持ったりします。普通に使うには十分遊べる時間になっていると思います。
「物事の裏側にある秘密を暴くこと」がプログラミングの楽しさ
草野氏:
「プログラミングは何が楽しいのか?」というテーマになるんですが……プログラミングって、何が楽しいんでしょうかね。僕はプログラミング嫌いなんですけど(笑)。
田中氏:
別に「プログラミングがしたい」という訳じゃなかったりするんですよね(笑)。
草野氏:
まあ、プログラミングしたいかどうかは別に、迷路みたいに楽しみながらゴールしたいんですよね。その意味では、教育の文脈でプログラミングを語ると、どうしても手段を覚えることが目的になってしまいますね。
たとえば「英語を喋れるようになる」、「数式を読めるようになる」というのは教える側からしたら、“手段を手に入れてもらうの”が目的になるんです。けど受ける側、子どもたちは手段がほしいんじゃないんですよね。手段があると何ができるのか、何をするために必要になるかがほしい。そこに大きなミスマッチが生じていると思うんです。
田中氏:
それは確かにありますね。
草野氏:
教える側としては「いや、そのためにはこの手段が必要なんだよ!」と、教えたくなるんです。ただ、実は手段って僕らが教えなくても、「楽しいことができるよ」という具体例を延々出すだけで、意外に子どもは実装ができちゃうんですよ。なので、具体例を見せてあげることが大事、という考えがあります。
「プログラミングの何が楽しいんですか」と言われたら、僕の場合は「今まで作ってきたものでこんなのがあって面白かったよ」というふうに具体例を出します。あのテレビでは僕が作ったシステムが動いているんだよ、とか。一緒に楽しめたら、もっと面白いことがあるといったような世界観を教えてあげるんです。
「プログラミング楽しいよ」と言えるのはある程度、プログラミングを勉強した後になるんですよね。
最近、僕は散歩をするようになったんですが、本当は運動が嫌なので歩きたくないんですよ。けど、歩き慣れてくると景色を見たり、今日は天気がいいなという余裕が出てくるようになって、やっと「歩くのって楽しいかも」と感じられてくる。
プログラミングも同じで、慣れないと楽しさが見えてこない。その慣れるための入り口としてまず、具体例を出して楽しいことを教え、ゴールを見せた方がいいと思うんです。そういうのを差し置いて「プログラミング楽しい」って、どういうことなんだよという気持ちですね(笑)。
田中さんは何か、「プログラミング楽しい」って思えることって今までにありましたか?
田中氏:
僕自身も小学校の頃からプログラミングは好きでしたが、思い返せば確かに最初に目的がありました。「『テトリス』みたいなゲームを作ってみたいけど、親が買ってくれないから自分で作っちゃえ」というものですね(笑)。
1980年代なので当時としてはまだ珍しかったですが、たまたま親がプログラミングできる機器を持っていましたから、それを貸してもらい、図書館の本を見ながらゲームを作ったりして覚え始めました。
それで取り組み続けたら、「ゲームって作れるんだ」という喜びと、その裏側の仕組みを理解できた嬉しさがありまして。プログラムって未知の謎なものだったのが、中がわかって「謎が解けた」ような経験をしたのは本当に楽しいと思えましたね。
草野氏:
まさに「秘密を暴いてやった」みたいな感動がありますよね。
田中氏:
そうですね。あ、こういう原理で動くんだ、これであれが再現できるんだ、みたいな。
草野氏:
ただ、プログラミングって覚えるとゲームが面白くなくなるデメリットもあるんですよね(笑)。
ゲームを遊んでると、ここは数値的にパラメータがこうなってるだろうな、このぐらいの範囲だろうなという想像をするようになっちゃって、素直に遊びを楽しめなくなってしまうという。
田中氏:
あ~……(笑)。ただ、やっぱりそのような楽しさはあるんですよね。僕自身もプログラミングがどうかと言われれば、楽しいとは思うけど、それをずっと繰り返しやり続けたい訳ではありませんから。どんどんイメージを実現したり生活を便利にして次に行きたい。
とても便利なツール、考え方やテクニックのひとつとして身に着ける必要があるものかな、と。要は車で遠くへ出かけるために自動車免許を取るような感じで、身に着けておくことによって、後々便利なことに使える場合がある、というイメージがありますね。
草野氏:
パズルゲームとして見た時のプログラミングも楽しいと言えば楽しいですが、プログラミングで何を作るか、何ができるのかを考えたりするのが最も楽しいんですよね。
なので、こういう『toio』のようなおもちゃって、すごくいいんですよね。何が作れて、何ができるのかがはっきりと見えていますから。それで変な挙動をさせたらどうなっちゃうんだろうとか、最高速で机から飛ばしたら一体、どれぐらい飛ぶんだろうとか、手軽にいろいろ試したくなるところがある。
田中氏:
これは一応、スタートとゴールがあって、ゴールに行くためにプログラムを組み立てる、というのがあるんですよね。中には全部、プログラムそのものが完成されたゲームもけっこうあるんですけど、これは全部、いじれるようにして、構造を裏側から見れるようにしています。
なので、いくらでも自分でいじれて、アレンジもできます。そういう「いじること」というのはすごく大事にしていますね。
草野氏:
やっぱりこういうおもちゃがあると、大人側は「何をしてもいいよ」と言って届けたくなるじゃないですか。でも、それだと逆に想像力が刺激されないんですよ。
たとえば、鬼ごっことかで本当に何でもありにしたら、一生終わらない(笑)。でも、西にずっと走り続ける、この公園内だけみたいな制限があることで、捕まったり、迷ったりというのが起きる訳で。遊びは制限を加えることだなと思う時があるんですよね。
ゲームをデザインしていてもそうですけど、自由帳を手渡されて楽しくなれる子どもというのは、自由帳を知っている子。自由帳の使い方を知らないから楽しんでほしいのに、そこに自由帳を渡すのは違っているんです。
ルールとか縛りとか、そういうのがあってこそ本当に楽しめる。そして、ルールがあるからそれを破ってみるのも試せるようになる。そういう遊びの幅みたいなのは作るのって大事だなと思いますね。
RPGが苦手だったので、無敵になりたくてプログラミングに手を出した
田中氏:
僕からもよろしいでしょうか?僕も今はプログラミングに関わっていますが、もともとはロボットの研究をしていたんです。草野さんは小学校の時に何がしたいとか、将来こんな仕事をしたいなというイメージや原体験はあったんですか。
草野氏:
小学校の頃は大きな病気をしていて、お医者さんが憧れでした。真面目に命を救われていますので。ただ、主治医の先生がすごくドライな人で、「君ぐらいの体力じゃ、医者にはなれないよ」と言われたんです。まあ、それはそうだよな……と、その時は納得するしかなかったです(笑)。
田中氏:
(笑)。
草野氏:
丁度、その頃は外出もできなかったので、親が室内でも遊べるものとしてゲームを買ってくれたんですね。ただ、僕はゲームを触っているとすぐ嫌になって止めてしまうんですよ。
その頃、RPGを遊んでいたんですが、僕はこんなにも上達しようと頑張ってプレイしているのにレベルが上がらなくて、全然強くなってくれなくて。それで主人公に腹が立っちゃうんです。おかげで今も僕はRPGが苦手なんですが、その時に「これのパラメータをいじれれば無敵になれるな」と思いまして。いわゆるチートみたいなことをしたくなって、それでプログラムというのがあるっぽい、という流れで行きつきました。
それでRPGを作ってみようとしたんですが、できないんですよね。その当時は子どもだったので、その理由はプログラミング言語が悪いせいだと(笑)。それで言語を変えてみようとなってC言語を触り始めて、それをやっている内に今度はエディターが悪いからエディターを作ろうという流れになって、ふらふらしまくりました。
そういうのがあって後々、テクノロジーはすごく偉大だなと思うようになりました。特に外出できなかった頃とか、学校にもロクに通えませんでしたから、友達が全然いなくてやりにくかったんですけど、インターネット越しにはそういった人たちがいて楽しかったんです。
それでテクノロジーの偉大さを感じるようになって、その頃、義手装具士になることを考えたんです。テクノロジーでいじり倒して、もっと人間の足の形を捨ててみてもいいんじゃないのか、人間を拡張できるんじゃないのかなと、けっこう本気でした。今もその手のニュースは追ってしまいますね。遠隔操作でロボットが動くのを見て、飛翔機能がほしいとか、そういうのが原体験としてあります。
田中氏:
なるほど。やっぱり、自分の目の前に課題が出てきて、それを解決するのは楽しいですよね。
草野氏:
分かるところから改造していくんですよね。プログラミング教育に関わることになった時、体験授業で『クッキークリッカー』みたいなゲームを作ったんです。
それでこのゲームのプログラムを書いてバグらせよう、チートしようみたいなことを子どもたちと一緒にやったんですけど、その時思ったのが、開発者用コンソールって未知の英単語が山ほど出てくるんですよね。
正直、「プログラムをこれからやる子に英語をいっぱい見せるのは虐待じゃないか」と僕は思いまして(笑)。それで大人として隠すべきラインってあるよね、“お化粧”ってあるよねと思ったんです。
それは割と大事だと思っていて、前にプレイヤーを狙って追いかけ続ける「追尾弾」を作りたくなったんです。追尾弾って直接的に作ると、絶対に回避できない弾になるんですよね。
常にプレイヤーの方向を追い続けるプログラムを書いてしまうと絶対にダメなので、加減速してベロシティを曲げなければならない。そこで、実は今まで気を遣わされていたんだなと。
俺が追尾弾を避けられていたのはプログラムのおかげだったんだな、と気付かされたことがあったんです。あれは本当にいいお化粧だと思いました。こういう『toio』の「命令カード」にしたって、ブロックにしたって要はお化粧ですよね。
田中氏:
まさしくそうですね。お話を聞いていてすごく共感を覚えるのは、プログラムの裏側が分かるようになると、そこに込められた作り手の考えとか、こだわりが見えてくるようになっているんですよね。コンピュータやプログラムがこれだけあふれている現代、そういう感覚を知る喜びというのがプログラミングにはあると改めて思います。
やっぱり、コンピュータとコミュニケーションができることですから、コンピュータが何を知ろうとしているのか、ロボットが何を知ろうとしているのか、プログラミングを通して分解するとその裏側が見えてきて、じゃあ上手く使いこなすにはどうしたらいいんだろうと工夫するようになります。
そういう自分がそこに載せる体験をして、面白さを伝えていくのがプログラミングの楽しさを伝える話にもなってくると思いますね。
草野氏:
教育というよりもプログラミングおもちゃとしての感じになりますね。
田中氏:
そうですね。『toio』に関しては教材として使っていただいているというのはもう事実で、ありがたいんですけど、やっぱりおもちゃとしての出発点があって、その上で上手く使っていただいているということは丁度いいのかなと思っていて。
家で遊ぼうと思えば家で遊べますし、家で楽しめる教材としても使える。それが学校でも使っていただいているというのは感慨深いです。今も学校はどんどん変化していて、教え込むというよりも自分で体験しながら学ぶという流れになってきているように感じますね。そういうところにはすごく注目しています。
教育だけでなく、遊びとしてのプログラミングも流行った世界
草野氏:
プログラマーの中には、「小学校でプログラミングを教えるのは反対!」という人もけっこういるじゃないですか。田中さんはそのことにどのような認識を持っておられますか?
田中氏:
僕自身は小学生の頃にプログラミングに触れていましたから、別に教えちゃダメというほどではないと思います。学べば物事の裏側をより深く知れますし、原理を理解したり、身のまわりの物事を分解するための考え方として知ってもらえた方がより楽しくなるかと。
──小学校で教えるのは反対……ということはどういうことなのでしょう?
草野氏:
う~ん……それはそういう人もいるという話で、実は僕も割とそっち側なんです。小学生がプログラミング的思考を手に入れること自体は絶対にいいことだと思うんですよ。そのままプログラマーになるのも、技術を習得するのもいい。
ただ、プログラミングって“即物的に金になりすぎる”んですよね。親御さんとかは子どもが即物的な技術を習得すると、期待しているんですよ。でも、それについては起こすべき流れだとは思わないんですよね。
プログラミング的思考って何かというと、一連の動作を分解し、認識する能力のことです。要するに一歩進むと右を向くのは別の事柄だよね、とか。それを即物的に教えすぎるのはよくない。
それに僕は日本の学校教育方針を信用していますけど、現場の教員にこれ以上の労力をかけてはいけないと思っているんです。明らかにキャパオーバーだろうと。学校って素敵な仕組みだと思うし、僕自身義務教育も大好きだけど、同時に子どもが嫌いなものを作る機関でもあるんですよね。
なので、数学と同じように「昔から苦手で……」となっちゃうように、プログラミングも同じように言う人が増える時代になったら、それは不幸だなと思っちゃうんですよ。
逆にこういう『toio』のようなおもちゃが流行った時代、それこそアニメで出てくる“野良ロボットファイト”みたいな世界の方が僕はいいと思うんです。学校教育って絶対ないとダメということはないから、こんなおもちゃがあるよ程度でいいのではないかと。
──いわゆる教え方、使い方みたいな感じですか。
草野氏:
触れ方ですかね。出会い方というのは大事で、上司と出会うのと先輩として出会うのだと、みんな顔が違っているじゃないですか。学びもそうだと思っているんです。
僕自身、英語が本当に苦手だなと思っていたんですけど、技術書を読むには英語を読むしかなくて、勉強するしかなかったんです。けど、実は技術書って180ワードぐらいの語彙があれば読めちゃうんですよね。日本の教育の場での英語って、出てくる単語が大量にありますけど技術書は違って、しかも書き方も綺麗ですから、少し勉強するだけでたくさん読めるようになるんです。それで「すごく!英語楽しい!」となるという。
まあ、これは興味がある分野だからこそ、というのもありますが、その入り口がどうなるのかが気になっていて、是非としては間違いなくいいんですけど、そういう学べる機会があることはどんな入り口になるのだろう、という不安を今は強く感じますね。
田中氏:
僕も入り口とか最初の体験はとても大事だと思っていますので、すごく共感を覚えますね。「食わず嫌いにならないでほしい」と言いますか。大人になってもプログラミングを触っていないから怖い、近寄りたくない、みたいになってほしくない。
自分たちの世代以降はそういうのは減ってきているかもしれませんが、いずれにしてもちょっとでも「これやったことがある」とか、思い通り動かせた成功体験があるといいんですよね。車で言ったら、ゴーカートを少し動かしたぐらいの感覚があれば、普通自動車を運転してみたいなという気持ちになれるというような。
そのような食わず嫌いにならずに済むぐらいのちょっとだけいい体験、原体験はあってほしいなという思いは常にあります。
草野氏:
なので、こういう『toio』のようなおもちゃが出てくるのは丁度いいことだと思いますね。というか、田中さんや僕らの世代って、まだゲームがプログラミングの原体験として成立していたではないですか。「あのドット絵なんかやれそうな気がする!」って。
今のゲームだと、「これ、俺なら作れる!」って思いになれませんよね(笑)。まず200人の制作者を集めて、みたいになってしまう。そういう諦めが先に来ちゃうぐらい、今のゲームは出来が良すぎて原体験にならないんですよね。
田中氏:
出来が良すぎる!それは確実にありますね……(笑)。
草野氏:
「これを作ろうとは思わんよ」となっちゃうんですよね(笑)。実際、若い子では思っていないことが多いです。決して居ない訳ではないんですけどね。
ただ、それって昔、僕らの小さい頃で言うところで、「ラジオ大好きでラジオ放送作家になりたい」と言っているぐらいのレベルなんですよ。1学年にほんのひとりだけという(笑)。
田中氏:
1学年にひとり……(笑)。けど、それはロボットにおいても今、身のまわりで普及しだしているものはすごすぎるものが多いというのがあるんですよね。実際はそんなに言うほど難しい原理で動いている訳ではないんですが、昔のドット絵のように身近に感じてもらいにくくなっていて。原体験になりにくくなっている不安はあります。
その意味ではたとえば最近のゲームで言えば『マインクラフト』みたいな、ああいう自分でも組み立てられそうと思えるような形で、ロボットがプログラミングで作れるようになればいいなと思いますね。
草野氏:
『マインクラフト』って、やっていることは高度なんですけど、絶妙にチープですよね(笑)。見た目が単純ですごく簡単に見えますから、あれは子どももやっちゃうよなと。
──『マイクラ』もそうですけど、チープさって、子どもが入ってくるに当たってけっこう重要なポイントだと思うんですよね。「何であのようなものが流行っているんだ?」と思うのだけど、あれだからこそ流行るというのがありますよね。
田中氏:
そうですね。(タブレットを持ちながら)これは僕の娘が作ったものなのですけど、自分で塗り絵ができたり、描いた絵がそのまま動くというものがあると、「自分でもできそう」という気持ちが出てくるんですよね。自分のキャラクターを投影できるというのが大事と言いますか。
僕の娘は小学四年生と一年生のふたりがいて、楽しく遊んでもらっているのですが、やはり自分が作ったものが動いた瞬間の喜びというのはものすごく感じてもらえるんです。それと工作のように普段から触っているから、自分の理解でいじれるというのも大事だと思っていて。
先ほどのゲームもそうですが、すごすぎるCGをいきなり作るのはとてもできたことじゃありません。けど、少しブロックを並べて折り紙や工作を組みあわせるくらいならできるような、そういう入口が自分の近いところにあるというのはすごく大事だと思いますね。
草野氏:
この『GoGo ロボットプログラミング™ ~ロジーボのひみつ~』の絵本もそうじゃないですか。テイストが明らかに幼稚園から小学生に入ったぐらいの子を対象にしていますし。しかもこれ、普通にきついプログラミング教育にもなっているんですよね。素で悩まされるものがありますし。
田中氏:
そうですね、けっこう骨の折れるものもあります(笑)。
草野氏:
カジュアルにIF文が出てきますからね、IFとLOOPがあったら完全にチューリングマシン【※】作れちゃいますよ(笑)。
※チューリングマシン
コンピュータとソフトウェアのように、計算やプログラムを正しく実行可能な機械の総称。ここではプログラミング言語として十分な機能が備わっていることを意味する。チューリングマシンとして成立するなら、無限の計算時間があれば理論上コンピュータで行える計算はtoioでも可能なことになる。
田中氏:
さすがですね(笑)。まさに全部入っています。やっぱり「順次・分岐・反復」はプログラムを書くのに最低限必要なものですので、とにかく基礎であり本物のプログラミングができる最低要件だと思って入れていますね。
草野氏:
チューリングマシンを作れたらもういいじゃないかという(笑)。これ多分、加算器【※】ぐらいなら作れるんじゃないんですかね? 全加算器ぐらいは作れないんじゃないのかな。IF文があれば全加算器作れるわけじゃないですけど。
※加算器
加算(足し算)を行う機械のこと。全加算器が実装できれば、原理上プログラミング可能なものとなり、理論上はコンピュータと同等のものとして扱えることを指す。1桁の計算と1度の繰り上がりを処理できるものを半加算器、半加算器をつなげることで任意桁数の繰り上がりを表現できるものを全加算器と呼ぶ。
田中氏:
まあ、そもそもメモリがないんですけどね。
草野氏:
そうか、メモリがないのか。あれ、いやでも……
田中・草野氏:
位置をメモリにすれば……【※】
※コンピュータとして動作するには計算結果を保持しておくメモリ(記憶領域)が必要だが、toioが動いた場所や番地に対して将棋の駒のようにデータの値として意味を持たせれば、計算結果の保持も可能なのではないか、という仮説を2人同時に思いついた。具体的には、数値が1増えたら1cm移動、桁の繰り上がりを縦移動で表現すれば簡易的にメモリの代わりとすることができそう。
田中氏:
あ、そうそう、そうです(笑)。シンクロしましたね。まさにその通りです。2次元の配列という感じに使って……
草野氏:
そこまではけっこうね、1マス歩くのがこれぐらいだから割とメモリ領域はあるような気がしますね。テーブルの大きさに依存しますが。
田中氏:
はい。でも本当、そんな発想で膨らませていける裏側のこだわりはけっこう注ぎ込んでいますね。
草野氏:
やっぱりチープに見えないと、いじっていいか分からないんですよね。勝手に壊したり、触ったりしていいか分からなくて。
これはもう、見た目がただの箱で、車輪がふたつ備え付けられた簡易なおもちゃで、何をしてもいいように思える。持ってみると、重量感的にヤバいという気持ちにはなるんですけどね(笑)。Nintendo SwitchのJoy-conを手に持った時のように、こんな小さい機械の中にセンサーやモーターがどれだけギリギリの限界まで詰まっているんだろうな、と。
ただ、このおかげで「間違っても別にそんな怒られたりするようなものじゃない」とは思えますね。そもそも、高級品だとそのようにしてはいけない感じになるんですよね。上品すぎて抵抗がありますし、入れていい場所も分かりませんし。
田中氏:
まあ、僕自身がロボットを作るのが好きなんですね。ネジを締めるとか、はんだ付けも好きなのですけど、やっぱり多くの人と話すと、いきなり電子基板で端子がむき出しに出ていたりすると「怖くて触りたくない」という意見も多いんです。
そういう「怖くて手を出せない」というのは避けたいと思っていて、このようなデザインに行きついたというのはありますね。
草野氏:
その話で行くと、ファーストインプレッションとしておもちゃという選択肢は正しいと思うし、おもちゃという方向に振り切ったんだなと思いますね。
田中氏:
そうですね。実はけっこう、大人の方でも自分の趣味として使っていただいていたりしまして。IoTデバイスとしての『toio』と見られていることもありますね。
草野氏:
おもちゃとして作ると、頑強なものが出てくるんですよね。教材だと、みんな大事に使うことが前提ですから、あまりその辺は重要視されていないと思うんですよ。これは見た目はチープだけど、頑強に作られていておもちゃになっている。
それに頑強だからこそ拡大解釈もできるんですよね。最近、二酸化炭素濃度とか湿度を測れる空気計を買いまして、それを見ていると「空気で何かやろう」という気持ちになってくるんですよ。二酸化炭素濃度が上がってきたら窓が自動で開いたりとか、換気扇が自動で起動したりとか。『toio』も似たようにテーブルマスコットとして作ったり、何かを載せたりとか、そういう気持ちになれる。
「プログラミングって拡大解釈できるものだよね」と考えもらうといいんですよね。子どもと命令1個ずつ書くのが面倒くさいみたいな話をするのですけど、時計なんてすごく複雑じゃないですか。目覚まし時計とか、音を鳴らすだけでもいろいろ設定する必要がありますし。
それにそもそも、目覚まし時計の音を聞いて朝に起きるのも、実はプログラミングといっても良いと思うんです。命令を飛ばして、人間を起こす方向に進めますから。そんな風に拡大しながら考えれば、「実はプログラミングってみんな自然にやっていることなんだよ」と。そういう考え方が自然に身に付けば、楽しいことに集中できるようになると思いますね。
田中氏:
そうですね。毎日食材をスーパーに買いに行く過程というのも、実はプログラミングで。自分が買いたい物に沿って自分を行動させているわけですし。他に旅行の計画を立てて、今日が雨だったらこうしようというのも、プログラミングで言えば分岐になる。
そういう考え方というのは仰る通り、普段からしているんですよね。なので、こういうおもちゃに触れることによって、それに気付かされたりすると、より楽しいことに集中できるようになっていくかなと思います。
草野氏:
プログラミングと言えば、黒い画面とフードを被ったハッカーが「いいこだ、ベイビー」という決め台詞を言っている場面を想像するかもしれませんが(笑)、それが全てじゃないですよね。
それこそスケジュール帳を入れたり、メモを取ったり、目覚ましのアラームが鳴るのも全てプログラミングで。そういうものがあるんだよ、と伝えたいんですよね。単純に楽しい、と言えるものがまず先にあってほしい。
それが無いと、「学んだところで何になるの?」みたいな返し方をされてしまいますから。だから、「行動というのは繰り返しで成り立っている」とか、現実にこういうのがあるという風に理解してもらえれば、と。
田中氏:
それをこの『toio』などを通して伝えられて、工夫したり、作る楽しさに発展していってほしいですね。
草野氏:
けど、もうプログラムという言葉が指すものは巨大化してきていて、小さなプログラミングはほとんど残っていないというのがあるんですよね。個人がプログラムを書いて便利ツールを作る、みたいな時代ではなくなっている。
もちろん、今もやっている人はいるんですが、もうiPhoneアプリを自分で作るとかすごく面倒だし、既存アプリの出来がいいから、それ以上のものはいいやとなる。
WEBサービスも同じで、たとえばサーバーが1個あって、自分の掲示板を開いたので、みんな書き込みに来てねとかやったら、昔は1日10人来るぐらいでしたけど、今ではSNSでバズれば1日10万人ぐらい来てしまうんですよね。それに耐えるサーバーを用意しなくちゃならなくなってしまう。
しかも、インターネットを利用する人の人口って多分、今の地球の総人口の3倍ぐらいはいると思うんです。僕が今、1~2人格運用していると考えて、デバイス1個あたり人格が1個増えていくとなれば、少なくともひとり2台とか、スマートスピーカーやゲーム機があれば4人格とかになってくる。
「そのアクセスを果たしてさばけるのか?」という世界になってきて、もう軽い気持ちで「WEBサービス作ってみました」とは言えない時代になってしまっているんですよね。楽しいプログラミング対象が残っていない。
あまりにもインターネットが巨大化してしまって、何かを公開することにリスクという名の覚悟が問われる。おもちゃとして遊びたいとなった時の適切なサイズのおもちゃがないんですよね。
こういうのを見ると、『マイクラ』で何かの作業を自動化する、みたいなことはやっちゃいますね。あと、巨大化については鳥嶋和彦さんとも「そうですよね」みたいな話を以前にしまして。
僕ら世代のプログラマー……僕はキャリア12年ぐらいなのですが、12年だとスマートフォン前夜で、市場の拡大とサービスとシステムの巨大化と一緒に付き合ってきたので、割と下駄を履いている感じなんです。その節々で勉強ができたんですね。
今、12年分含めてこうなっていますけど、今から僕と同じぐらいになるためには、それこそ12年分やってきたその巨大な負荷に対する対策を全部頭に叩き込まねばならないんです。