BASICとJavaScriptに関するつぶやき。あとFlexに飛び蹴り

BASICと最近のモダンな言語についてあれこれ語ってます
20

ある日、安倍吉俊さんがiOSでBASICを使いたいと言い出した

安倍吉俊/yoshitoshi ABe @abfly

往年の「ポケコン」がiOSアプリで復活 BASICをポチポチ打てる - ITmedia ニュース - うおお…… http://t.co/VBwLFLhq

2013-01-22 18:17:22
安倍吉俊/yoshitoshi ABe @abfly

ああ、iOSで動くBASIC欲しいな……。今だったら相当速いだろうし。というか、そういう事考える人はenchant.jsやれって事か

2013-01-22 18:19:26
shi3z @shi3z

@abfly まあでも敢えてBASICが欲しい気持ちもわかります

2013-01-22 18:37:03
安倍吉俊/yoshitoshi ABe @abfly

@shi3z 小学生の時いじってたBASICが千倍速かったらできる事が全然違うと思うのでちょっとやってみたいですね

2013-01-22 19:02:04
shi3z @shi3z

@abfly PC用のBASICインタプリタはいくつかあったと思いますよ

2013-01-22 19:02:52
安倍吉俊/yoshitoshi ABe @abfly

@shi3z そういえばそうですね。でもできればつくった物を公開して簡単に誰でも遊べるように……って言い出すと、まあそれこそenchant.jsって事になっちゃいますが(笑)

2013-01-22 19:15:34

「たしかに1000倍速いとしたらやれることはちがうかも・・・」と脳内で思ったのだけど、いやいや待てよ、そもそもBASICって高度なプログラミングに全く向いてない言語だったんじゃなかったっけ、と思い直す。

BASICの基本的な構造って、変数と便利な命令(ステートメント)が大量に用意されてる以外は根本的にマシン語と大差なかった、というのを思い出した。

shi3z @shi3z

@abfly ただねー、やっぱ今やると解りますけどあれはもうぜんぜんダメっすよ。BASIC。アホっすよ。あれやるならマシン語やったほうがいいっす。実用的なプログラムを書くための仕組みがゼロなので。イライラしてなにも作れないですよ

2013-01-22 19:19:10
shi3z @shi3z

BASICの何がダメなのかというと、もう何もかもダメなんだけど、たとえば変数が全部グローバル(発狂する)だとか、処理が全部上から下に流れるだけとか(イベント処理?ナニソレ)、ユーザ定義関数が飾りとか、極めつけは描画が遅すぎること

2013-01-22 19:21:14

ちなみにBASIC以降に主要な言語への移行時に導入された概念("独断と経験"による)

  • マクロアセンブラ(MASM)
     マクロ

  • C
     プリプロセッサ
     動的リンクライブラリ
     構造化プログラミング
     構造体/共用体/列挙型
     関数(BASICのユーザ定義関数とは別物)
     ローカル変数
     インラインアセンブラ
     ポインタ
     マルチスレッド

  • C++
     クラス式オブジェクト指向 ( 継承 / 集約 / 多態)
     テンプレート
     テンプレートライブラリ
     参照
     演算子オーバーロード

  • Java
     インターフェース
     参照(C++のポインタの廃止)
     クラス内クラス
     動的クラス呼び出し
     

  • JavaScript
     第一級関数
     プロトタイプ式オブジェクト指向
     クロージャ(後にJavaにも実装)

安倍吉俊/yoshitoshi ABe @abfly

@shi3z なるほど。僕は子供の頃BASICいじっただけで他の言語の事が分からないから逆にBASICでできそうな事しか思いつかないけど、そういうものかもしれませんね

2013-01-22 19:22:45
shi3z @shi3z

BASICの中でもゲームを作ることを多少配慮してあったのがファミリーベーシックとMSX。ただ、決定的に古いよね。何もかも古い。今BASICを作り直すとしたら、行番号をなくしてオブジェクト指向のものになるだろうし、関数もちゃんと使えるようにする。するとJavaScriptになる。

2013-01-22 19:23:12
shi3z @shi3z

ただ一点だけBASICが凄いのは、環境。フルスクリーンエディタとダイレクトモードが混在するあの環境だけはBASICの凄まじい教育効果を持っていたと思う

2013-01-22 19:24:49
shi3z @shi3z

BASICに比べると、例えばenchant.jsだったら少なくとも1/10以下のコードで同等以上のことができる。Cでやろうとすると、まあBASICの数倍にコードが膨らむ場合もある。

2013-01-22 19:26:54
shi3z @shi3z

再帰処理をBASICで説明してた書籍とか読んでもさっぱりわからんのは今思えば当然だったのだが、わからない方が悪いのではないかと思っていた

2013-01-22 19:27:57
shi3z @shi3z

石器時代と原子力潜水艦くらいの差がBASICと今のLLにはある。

2013-01-22 19:29:26
shi3z @shi3z

僕がeToyやプログラミンがイマイチだと思ってるのも、どことなくBASICに似てるからかもしれない

2013-01-22 19:32:35
shi3z @shi3z

初心者にやらせようとしてる思考ロジックの根本がBASICにあると今の時代についていけない

2013-01-22 19:33:03
shi3z @shi3z

BASICは脱脂粉乳だ。いまは本物のミルクがあるんだから飲めばいい

2013-01-22 19:35:05
shi3z @shi3z

「○○言語では何でもかけますよ」問題というのがあって、たとえばLispとかFORTHとかがその最右翼なんだけど、メンテのことまで考えたらマニアックな言語で書くとそれだけでコードの生存性が下がる

2013-01-22 19:42:20
shi3z @shi3z

むしろなぜUNIXを書くにはまず専用言語のCが必要になったのか、そこから考えるべきだ。UNIXを記述するDSLとしてのCがあったのだとすれば、新しい時代のOSは言語からして新しくあるのが普通なのではないか

2013-01-22 19:44:13
shi3z @shi3z

で、その流れでAndroidはJavaであり、iOSはObjective-Cなのだと。TizenやFirefoxOSはJavaScriptか?と思ったけど外れてはないにせよあたってもない気がする。OSそれ自身がJavaScriptで書かれてるわけじゃない。

2013-01-22 19:46:27