ビスケットの将来像

ビスケットが今後どうなるかについては,2つの方向性があります.

まず,ちゃんとしたコンピュータの専門家を育てるための入門としての位置づけとして.ビスケットはこれ以上拡張せずにある程度の不便さを残したままにします.その不便さというのはたとえば,メガネが増えすぎてぐちゃぐちゃになるとか,似たようなメガネが大量にあって整理したいということですが,それこそがコンピュータにとって重要な概念の一つである「抽象化」を学ぶチャンスですから.その不便さを一度経験してから,整理する方法を教えると,抽象的に考えるのはとても有益である,ということが実感できるのだと思います.オブジェクト指向なんかも同じですね.さんざん複雑なプログラムを作った後に,継承とかでズバッとプログラムが簡単になって読みやすくなれば,本質を理解しやすくなると思います.だから,メガネを整理する便利機能はいれては行けないのです.

もう一つ別の方向性.それは,専門家にはならない人,もうこれ以上プログラミングはしなくていいや,という人たちに対する解を与えること.これ以上プログラミングをしなくてといいながら,ビスケットがまったく手を出していない領域に計算がありますから,これはこれで別の言語が必要だと思いますが.ビスケットを素直に延長させたときに,ただの遊びじゃなくビスケットのプログラムが生活の役に立つようなレベルにまで進化させるということです.

ビスケットの基本はメガネですが,ここではこのメガネを拡大解釈して,普通のプログラミング言語の用語でいうところの書き換え規則とか,もっと拡大してIF-THENルールまでも含めることとします.それをここでは全部メガネと言い切ります.

IF-THENルールというのは2回前くらいにAIがブームになったときに出てきた技術で,「もし~なら,~する」という形式の規則をたくさん並べて,知識を表現するというものです.

ビスケットのメガネには左側にセンサーを入れることができて「もし~なら」が書けます,右側にはモータとか制御対象を入れることができて「~する」を書けます.今のビスケットでいうと,「もし赤い丸を触ったら,ドの音を鳴らす」みたいなものです.

「~する」の部分が単純に何かを制御するだけではなく,コンピュータの内部状態を変化させたりもするので,それによって他の「もし~なら」が有効になって,連鎖的に規則が適用されるようになります.そうやってプログラムは動きます.

増井さんの研究で,実世界指向プログラミングというのがあります.たとえば,夜8時にビデオの予約をしたければ,時計の時刻を8時にセットしたものを使ってその時刻を指定するという感じです.コンピュータに対する指示を具体的な物を使って行うというアイデアだったと思います.

これがビスケットのメガネととても相性がよいのです.たとえば,メガネの左側には8時にセットされた時計を置きます.これには電池が入っていないので止まってて,ずっと8時を指したままです.メガネの左には録画ボタンがおされたテレビ録画装置を入れます.これで,8時になったら録画をスタートする,というプログラムになります.ビスケットの書き換えという意味で厳密にやると,メガネの左側には,8時の時計と,録画ボタンが押されていない装置を入れて,右側には8時の時計と,録画ボタンが押された装置を入れます.でも時計が消えたり録画装置が現れたりはしないので,そういうモノの制約から,自動的にメガネの足りない部分を補完するようにしてもいいかもしれません.

実際には電池の入っていない時計を用意するのではなく,8時ということが伝わればよいので,8時に時計をセットしたときの写真を撮る,というのでもいいでしょう.

こうやって,「もし~なら~する」という形式でプログラムを増やしてゆきます.

これはIoT時代のプログラミングということでもありますね.状態を増やせばいろいろと複雑なことが書けると思います.

ビスケットのメガネの形式というのは,今のプログラミングの主流からは外れているように思われがちですが,IoT時代の家庭レベルのプログラミングではこのメガネ形式の方が優れています.

ビスケットが本当のプログラミングではない,という誤解から,これを教えることを躊躇されがちですが,将来的にはこちらも十分重要な書き方なんだということは,一般の方に伝えてゆきたいと思います.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする