Micro:bitとか、M5StickCとかのために、Block-based な Visual Programming Language (VPL)なるものを触り始めました。お子様の教育用?のような偏見を持っていましたが、よくよくVPLの範疇を探ってみるとプロ用のツールも存在します(例えばMathWorks社のSimulinkなど)。そうとは気づかずお世話になったりもしています。WikiのVPLの項など拝見するに結構膨大な数のシステムがあることが分かります。そのうちプログラミングといえばそういうことになってしまうのか。何をどこまでできるのか?そしてどんな嬉しいことがあるのか、無いのか。体験あるのみ。
※「ブロックを積みながら」投稿順 index はこちら
まずは、本サイトで最初にBlock-basedなVPLが登場したのは、英国はBBCの「教育用コンピュータ」Micro:bitのためでした。しかし本サイトを御覧の方は知っています、 Micro:bitはNordic社のbluetooth無線マイコン搭載の結構本格的なマイコン・ボードであることを。Arm社のRTOS/開発プラットフォームであるMbedOSを使い、C++で本格的なプログラミングも可能であることを最近も確かめています。しかし、多くのMicro:bitユーザさんがプログラミングに使っているのは、以下の環境でしょう。ファンシー。
これは、マイクロソフト社のMake Code というシステムです。その源流は、Google/MITメディアラボらしい。お絵描きといってバカにしたものではないです。上の短いコードでBluetoothで通信をやってみました。このブロックエディタの裏側で生成されるスクリプトはJavaScriptです。
さてね、お次はM5StickCでした。こちらはこちらで、Arduino環境でC++風のソース書いて開発もできるのですが、やはりブロックベースでプログラミングをやってみています。こちらは UIFlowという名のシステムです。
こちらもとても短いコードですが、PIR(人感)センサを接続し、人を検出したら画面に赤丸、そうでなければ青丸を表示するような仕事ができています。ちゃんとマイコンしてますね。なお、こちらのシステムの裏側はPythonになっています。
まだ、手元にあるボードでVPL実行できるものがありました。忘れちゃいけないRaspberry Piです。Raspbian(Linux)OSはデフォルトで2種類のVPLシステムを搭載しているのでした。そういえばRaspbianも英国です。英国には教育用のコンピュータという伝統があるのですねえ。
さて、Raspbianのプログラミング・メニューにScratchが見えているのは知っていたけれども、いままで目を背けてました。すみません。こちらはScratch 1.4。
上の2つのシステムにくらべると、キャラクターが全面にでている分、「お子様向け」感がかなり前面に押し出されていて年齢層によってはとっつきやすそうな作りになっています。ちなみに、ネコのキャラクターで
Scratchキャット
という何の捻りもない名前らしいです。しかし、このScratchキャットに亀(タートル)の影を見てしまうのは私だけではありますまい。タートルグラフィクス。そこから連想されるのは、かのパパート先生の
Logo
でしょう。Lispの()を無くして、carをfirst、cdrをbutfirstと唱えればLogoにとぞなる(乱暴か)。遥かな昔、私はCP/M上で今は無きDigital Reseach社のDr. Logo使っておりました。タートル好き。Scratchの裏側にも「再帰」な世界が隠れているのでしょうか。ちょっと楽しみ。
そしてラズパイにはもう一つ、Scratch2というものも搭載されているのです。
やはり、Scratchキャットは健在。わざわざ両バージョンを搭載しているということは、何か意味があってのことなのでしょう。使ってみれば分かりますか。
というわけで、本シリーズでは手近に使えるものから「VPL」してみて、比べて、考察をば致さんと考えております。