Superb Garbages 2

千野純一(chinorin)のはてなダイアリーの続きです。

唐突にビジュアルプログラミングについて思ったことを書く

・明けまして喪中です。


・ビジュアルプログラミング? そんなんキーボードで文字打った方が速いに決まってるやん、と思っていた時期が私にもありました。

・少し前のことになるけど、micro:bitをいじる一環でMicrosoft MakeCodeをちょろっと触ってみたんすよね。なんつーか、そこまで複雑なことはやれないのかもしれないけど、比較的単純な構造のものであればかなりわかりやすく簡単に組めそうだし、俺みたいに「この言語が専門です!!」って言えるのがなく何をやるにも言語仕様を調べながら書いてるような人にとっては、総合的にみるとGUIプログラミングの方が速く作れる可能性がある。

・そもそもMakeCodeは作ったビジュアルプログラミングのソース(ブロックコードとか言うのかなあ)をPythonJavascriptで書き出すというプラットフォームなわけで、GUIだけで作れなかった部分があったとしたら書き出したPythonJavascriptのソースにさらに手を加えてもいいし、あるいは複雑な機能を実装したカスタムブロック(サブルーチンとかライブラリに相当するんだと思う)をまず最初に作ってしまうという手もある。

・なにより一番衝撃的だったのは↓この手のブロック。
f:id:chinorin:20220102014214p:plain

micro:bitって英国BBCが作ってるマイコンボードでMakecodeに公式対応してるんだけど、基板に5x5のLEDマトリクスが標準搭載されていて、それのどこを光らせてどこを光らせないかっていうのを座標でもポートでもなくこうやってGUIで指定してしまうんだ⋯。

・普通のマイコンでLEDマトリクスやろうとするとたいへんなんだよ。w 5x5だとしたら例えば74HC595(8bitシフトレジスタ)を2個連結して、そこにマイコンからSCLKとSDAとRCLKを繋いで、マトリクスの方には74HC595から10本の線を繋ぐんだけどその間には必要に応じて抵抗5本とトランジスタアレイとかを置いて、シフトレジスタへの出力によってダイナミック点灯を制御する関数を書いて、その関数に渡すchar配列かなんかの仕様を決めて初めて点灯/消灯の二次元的な配置を記述することができる。それに比べたらもう天国みたいな環境ではないか。

・というわけで、最近まで「PCがないと開発とかできないでしょ」信者だったんだけど、もう既にタブレットでも開発できるじゃねっていう感じがとてもしましたというお話。これからmbedみたいなオンライン開発環境もどんどん出てくるんだろうしね。どうかね。出てこないかね。

・まー何にしても、ビジュアルプログラミングでも充分プログラムは学べるし、なんなら5年後10年後、ビジュアルプログラミング言語で斬新なものを作ってビジネスを成功させる若者がどんどん現れても全然おかしくないと思うのよ。だからってCUI言語がなくなるってことはあり得ないけど、CUIしかできない人は老害として敬遠されるみたいな未来はひょっとしたらあるかもしれない。

・そういえばArduinoにはビジュアルプログラミング環境&オンライン開発環境みたいなのはないのかねと思って調べたら、既にScratch3.0の拡張?としてScrattinoっていうのがあるみたいね。と言いつつ、これは組み込みのプログラムをするんじゃなくて、ScratchとArduinoを連携させるための環境なのかな。

・ここまで論を展開しておいてナンだけど、俺自身は結局ビジュアルプログラミングをすることにそんなに興味がないので具体的に詳しく調べる気は起きないという⋯。