衝突指向プログラミング言語「プログラミン」

文部科学省のページに突然プログラミンとかいうサイトができた。

Scratchみたいなビジュアルプログラミング言語がブラウザ上で完結して遊べて、しかも作った作品をネット上で他の人に公開したり、公開されてる作品をさらに改造したりできる。

  • 洗練されたUI、豊富なサンプル
  • 「ミギクルリン」などの親しみやすくキャラクター化された命令
  • クレヨンっぽい絵がすぐ描けるすぐれたお絵かきツール
  • ログイン不要で作品の公開やフォークが自在

など非常によくできている。まあビジュアルプログラミングの宿命として、

  • 各オブジェクトに大量のロジックが貼り付けられてコード全体がカオス
  • オブジェクト間の通信方法が「衝突」しかないためピタゴラスイッチっぽい作り必須
  • 変数もないので衝突とオブジェクトの位置を使った物理的フラグ管理などで代用する必要あり

などの欠点もあるけどまあしょうがないね。衝突を判定する「ブツカッタン」という命令が居るんだけど、こいつが大活躍することでプログラミンのポテンシャルをやたらと無駄に引き上げてる作品群が多い。

編集画面で実行すれば、画面外でいろいろなロジックを担うオブジェクト群ががたがた動いて複雑なことを実現している、ってのがビジュアライズされるので、これはこれで楽しい。裏の歯車が見えてる時計みたいなもんだ。

クラスを導入することでコード全体を簡潔にしたり、オブジェクト間通信や変数を導入することでロジックを簡潔にしたり、みたいなことはできるんだろうけど、それらの概念を直感的に分かりやすくビジュアライズすることは難しいだろうから、こんくらいの割りきった作りが正解なんだろう。でもプログラミングが生み出す世界の楽しさは、その辺のビジュアライズしにくい概念にも宿っていたりするので難しいね。