2013年1月24日

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
残りを読む(25)

コメント

B.cos式袖車 @bcosizm 2013年1月24日
ActionScript3だけで組めると、本当にMXMLとタイムラインはいらないですねえ。悪魔合体という表現はうなづけます。私はActionScript3自体は使いやすくていい言語だと思います。
0
Kenrow 改二特 @KenrowY 2013年1月24日
手軽に使うならMSがSmallBASICとゆう環境を出してます。まぁ、アプリ作成には向きませんがw
0
たるたる @heporap 2013年1月24日
BASIC関係ないけど、CSS3アニメーションとJavaScriptアニメーションの関係って、FlashタイムラインとActionScriptアニメーションの関係に似てると思う。
2
いくた♥️なお featuring Tricity155 @ikutana 2013年1月24日
XBASICとかVisualBASICとかローカル変数をサポートしてたBASICはあるけどね。
0
nekosencho @Neko_Sencho 2013年1月24日
どれひとつ使ったことないからどれがいいかは知らないけど、こないだiOSのBASIC検索したら山ほどあったよ。
0
都幾川 沙月 @SatsukiFox 2013年1月25日
最近、たまにQuickBasic4.5Jあたりの互換言語が欲しいと思ったりします。
0
nekosencho @Neko_Sencho 2013年1月25日
BASICというか、メモリ2KBユーザエリア1KB(原稿用紙一枚分くらいw)程度のポケットコンピュータでプログラム作るの楽しかったなあ。狭いとこに詰めこむパズルみたいだった
2
いくた♥️なお featuring Tricity155 @ikutana 2013年1月25日
WindowsだけどVBScriptベースでのHTML Applicationとか結構面白いんだけどね。ただ、覚えることは多すぎるか。HTMLとCSSでリッチテキスト作れるようになったら、そのステップアップでやるって流れが良いのかもしれない。
0
mryo0826 @mryo0826 2013年1月25日
まとめの内容が少々懐古主義な気がするなぁ。GUI絡んだ所になるとVBとか有るし。この辺は開発環境に寄る所があるので。今更Basic系をやる気にはもちろんなりませんが。
0
mryo0826 @mryo0826 2013年1月25日
めっさDisられているFLEXで開発した事有りますが、純粋にRIA開発する時はタイムラインなんて使わずAS+MXMLだし、その辺は割と今時の開発手法でしたよ。あの当時JavaでRIA作るより開発環境としては揃ってたし。
3
A.C.✨NCC1710hh2 @AerospaceCadet 2013年1月25日
新しいOSには新しい言語と言えばXeroxのStarはMesa、チューリッヒ工科大のニクラウス・ヴィルトのOberon(OS+言語)がそうですね。日本だとBTRON2のシステムコールがC++で定義されてます。
1
A.C.✨NCC1710hh2 @AerospaceCadet 2013年1月25日
尤もBTRON2は仕様書が本屋で売ってて誰でも買えるけど誰も実際に実装しなかったんだけどねw。
1
たるたる @heporap 2013年1月25日
1ファイル=1サブルーチンと見なす(指定したファイルを読み込んで実行する組み込み関数)ようなBASICベースの新しい言語を作れば、tkベースで今風のアプリも作れるんじゃないかと妄想してみる。
0
A.C.✨NCC1710hh2 @AerospaceCadet 2013年1月25日
DSのプチコンやiOSのDPC-100はあくまでレトロ趣味のおっさんホイホイなので手軽に使えるよう汎用的な機器の上で動くことこそ求められる訳ですがenchantMOONはユーザエクスペリエンス的にハードと不可分なのでしょう。
0
A.C.✨NCC1710hh2 @AerospaceCadet 2013年1月25日
デモ映像や紹介記事から察するに”一定以上のサイズのスレート状マシンで”、”筆圧検知のペンと指による直接指示を使い分け”、”複合文書を作成する”これを有象無象のAndroid機で実現するのは無理があると。
0
A.C.✨NCC1710hh2 @AerospaceCadet 2013年1月25日
その辺をenchantMOONを知る前にツイートしたもののまとめがこちら。(宣伝御免)|Windows8発売に際して思いついたOSの機能についてのあれこれ http://bit.ly/WqpwtV
0
bkzen @bkzen 2013年2月8日
悪魔じゃなくてエクマです。
0