イヤッホー!またBASICの時間ですよー。ホントどんだけBASICが好きなんだよという感じですが、BASICってのは利用者を育てるプログラミング言語だと思いますよ。その他の言語は知りませんけれど(オイ)...。
というわけで、まずは Palmの Small Basicから。
最近、離れから Palm Magazine vol.25 という雑誌を発見しまして、それに付いていたDVD(実はvol.25が最終巻でそれまでの24冊の内容がPDFファイルとしてDVDの中に入っているのです)を見て知ったんですが、Small Basic って Palmの制御もできるんですね。
ただの端末用Basic インタプリタだと思っていたんですがビックリ!
たとえば、
---------------------
100 RUN "memo"
---------------------
と実行すると、内蔵のメモ帳が立ち上がるという訳です。
雑誌に載っているくらいなんで、知っている人には当たり前なんでしょうが、ちょっとビックリです。OSが載る前の大昔のマイコンみたいなワクワク感がありますよね。
お次はですね、ヤフオクでまたポケコンを落としましたよー。
最近まで読んでた「ニューロマンサー」という小説に日立のポケコンが登場していたので(欲しくなって)探していたんですけど、そんなの売ってるわけがねー(また騙されたわけですが)。
というわけで、前回はシャープのを買ったんですが、今回はカシオのヤツです。コイツの名前は「VX-4」。シャープのと同様に教育用のマシンなのですが、さらに貧弱な性能なんです。でも使い勝手がとても良いのです。
このマシンを気に入っている方がサイトを作っているので、そこを覗いて、自分でポチポチ打ってみて、私もすげー気に入りました。
変わってるなと思ったのは乱数を RND ではなく RAN# という関数を使って発生させるということと、繰り返しの WHILE ~ WEND 文が無いことでしょうか。
また、カシオのポケコン一般に言えるかどうか分からないのですが、S0~S9までプログラムの保存場所があって指定することで任意のプログラムを走らせることができるのです。シャープのポケコンでは、直前に保存したプログラムしか呼び出せないような気がします(このあたりよく分かっていません)。
そんなわけで意外な使い勝手に、シャープのはあんまり触る気がしないのに、コイツは触っているだけで楽しくなるんです。シャープのより古くて貧弱な機能しかないのにね。
いつの時代にも金じゃ買えない旧式デバイスへの熱きノスタルジーを捨てきれない輩がいるってことさ。
いや、お金で買ったんですけどね!
そしてお次はこれさっ!ARMマイコン パーフェクト学習基盤!
かつてArduinoが素晴らしく思えたこともありました。
Arduinoはいい友人だったが、Arduino言語がいけないのだよ!
まんまC言語じゃんか。
というわけで、BASICでも動く基盤を本屋さん(笑)で買ってきました。
実はコレ基盤の上にCPUなど主要部品は載っているのですが、足りない部品があって、それは自分で用意しなきゃいけないんです。
部品屋で買うのは辛いので(ネットで注文して部品を探してもらうという手もありますが)、専用の部品が売っていますのでそれを買いました。
で、ハンダ付けの後、この動画と同じようにLEDピコピコまではやったんですけど...その先が難しい...制御は難しいです。
さらにさらに、プチコンですよ!
うほー、ニンテンドーDSiでBASICを動かせるとは!
さっそく購入ですよー。
上の画面がモニター、下の画面がキーボードなんですが、入力するのにイライラしてきます。やっぱり、キーボードはクリック感が無いと...。
でも、この大きさでBASICが動く!というのは素晴らしい。SDカードにインストールする形ですので、既存のゲームも遊べますしね。
一番グッときたのが、「初心者向け講座」。正直、配列の意味が掴み辛くて(BASICを)何度も投げ出しそうになっていたんですが、ここは教え方がテキトーな感じがいいです。あまり難しく考えなくていいんだと思えるようになりました。
最後は、iPhoneのアプリ、Basic!です。
Appleの方針としてプログラミングのできるようなアプリは登録できても運営側が勝手に抹消してしまうようなので、現在ちゃんとプログラミングできるアプリは多分これだけじゃないかなー。他にいくつかBasicのプログラミングができるアプリもあるにはあるのですが、正直使えないんです。
このBasic!も最初試したときは(金返せ!と言いたくなるような)ガッカリさんアプリだったのですが、バージョンアップされてなかなか使える奴になりました。
このアプリの素晴らしいところは、インターフェイスにあると思います。
IDEのインターフェイスと言ったほうがいいのでしょうか。
まずパッと見て、プログラミングする場所である「Editor」部とプログラミングを走らせる「Terminal」部が分かれているのが、良いです(ポケコンなんかだとこのあたりがとても分かりにくいです)。
また「Editor」部の一番下には Help Run Load Save の4つのボタンがあるのがうれしいです(バカなのでボタンが多すぎると機能を覚えられません。最低限に絞ってくれているのがとても好印象です)。
特にHelpが最高です。このアプリでサポートされているBasicの構文や、各関数についてしっかり説明があるので重宝します。
実際にプログラミングすると、自動で字下げしやがります。これでは普通のプログラミング言語のようじゃないかっ!
また、サポートされている構文や関数が自動で大文字となるのもGOOD!あーこの機能はサポートされてるんだーってな感じです。ハイ。
で、気になったのが、PRINT USING がサポートされていないのとマルチステートメント(:)がサポートされていないことでしょうか。
特に後者の場合は、こういうときはAしてBせよ みたいなのが書きづらいです。
例をあげると、クラスに10人生徒がいてあなたは先生です。テストをやりました。このテストは60点を合格点とします。テストの結果を入力し、60点以上なら「合格」60点未満なら「不合格」と表示させ、最後に合格者、不合格者の数を表示させなさい。
なんていうくだらないプログラミングをするとき(BASICのテキストにこんな感じのがあるんですよ)
-----------------------------------------
100 g=0 'GOKAKU
110 h=0 'HU-GOKAKU
120 FOR i=1 TO 10
130 INPUT "tokuten";t
140 IF t>=60 THEN
150 PRINT "GOKAKU" : g=g +1
160 ELSE
170 PRINT "HU-GOKAKU" : h=h +1
180 ENDIF
190 NEXT i
200 PRINT "GOKAKU",g
210 PRINT "HU-GOKAKU",h
-----------------------------------------
150行目と170行目みたいに書けないのがムカつくんですが(1行に2つの命令は勘弁しろということでしょうかね)...。
他のやり方でやればいいのでしょうが...。
またFOR ~ NEXT文のNEXTを i とか j とかで締めさせずに自動で改行してしまう仕様も許せないぜ!
それから、MOD を MOD(a,b) みたいにする仕様も自分のやりかたと違うのでちょっと嫌。
でもでも、なんといっても気に入らないのは以下の2点
まずは、自動インデント。便利なのですが、インデント後にもたつく感があるのをなんとかして欲しいです。
インデント後に NEXT とか PRINT とか書いているつもりなのに、
たびたび extn とか rintp とかになっています。
入力スピードに追いついてくれよ(私の入力スピードが速いわけではないのです)!iPhone のCPUって結構速いんでしょ!
そして一番気に入らないのは、行番号をサポートしていないってこと。
個人的にBasicのプログラミングには、まず行番号を付けないと嫌なんです(これこそどうでもいいって感じですが...)。