BASIC言語は「基本的」言語と洒落てるけど、実際はbeginner's all-purpose symbolic instruction codeの略だ。初心者向け全能抽象的記述コード、とでも訳せば良いのか。確かに名前に「初心者向け」と入っている。
しかし。
教えて!gooでISO/JIS FullBASICを使って素数を求めるコードを書いてみたりはしたんだけど。
シャレにならんほど難しかった。要するに、今ポピュラーな言語で「今どき当たり前な」機能が全くない。
BASIC好きは「BASICは初心者向けに優しい構文となっている」といっつも言うんだけど、とんでもない。簡単さから言うとPythonの方が遥かに簡単である。
BASICは、1991年の時点で「簡単な記述法で、かつ総括的な」仕様をFullBASICとして決定したんだろうけど、ぶっちゃけ、思惑を外した、としか言いようがないと思う。同じ1991年に登場したPythonに完全に遅れを取ってるのだ。
例えばどうやらFullBASICには真偽値が無い。つまり、リテラルとして存在しないのだ。仕様をひっくり返して見てみたけど、何も記述が無い。
つまり、2 < 1と言う式が偽の場合、その「偽」の情報が全く取り出せない。PRINT 2 < 1で出るか?と思ったらErrorである。んなバカな、とか思ったけど、実際そういう言語らしい。うーーーむ。真偽値がブラックボックスになっている。こんな設計あり得ないだろ。
他にも、実はパソコンで流行ってた旧いBASICにも負けている。一行に複数の式を記述出来ないのだ。たまにApple IIでの昔のBASICのソースコードを読んだりしてんだけど・・・実用性はないけど、教養の為(笑)?まあ、そういう昔のBASICのソースを読むと、1行に何個も式が書かれてたりするんだけど、FullBASICにはそういう記述が許されないらしい。これも仕様をひっくり返して探してみたんだが解決策が全く書かれていなかった。ふーむ。
いや、色々「隠されてる」とか「これが出来ないあれが出来ない」と言うのは、明解さを明らかに欠いていると思う。こんなの、もはや初心者用言語じゃないと思う。初心者が扱うには難しすぎるだろ、ってのが感想だ。
ちなみに、Debian系LinuxでFullBASIC実装を提供してるのか、と思ったけど、全く無かった。世界的に見ても、恐らく、ISO/JIS FullBASICのフリーなフル実装は十進BASICしかないんじゃないか?あとは、商用のTrueBASICくらい。世界に2つしか実装がないんじゃないかしら、奥様!
GNUが手を付けないくらいだ。マジで使いにくい、ってんで見捨てられてるんじゃないか(使いにくい割には仕様が巨大なのだが)。
良く分からんけど、MicrosoftのVBは色々使いやすく改良されてんのかもなぁ、って思った。まあ、もはやVisual BasicはBASICに非ず、って話もあるんだけど、91年登場の言語にしてはFullBASICは明らかにイマイチなんで、そりゃあユーザーもMSの言語に移りますよ、って痛いほど分かった、と言う話である。