RunBASICはサーバーサイドのBASIC。基本はcgiと同じ。perlやphpをwebサーバに置いて、
ブラウザ側から動的にwebページを表示可能。

従来のBASIC言語としても利用できるし、Webアプリケーション作成も可能。携帯などからも
利用出来る。
cgiと異なる点は、BASICインタプリタとWebサーバがオールインワンで含まれ、動作させる
BASICコードをブラウザ上で編集できる事。通常はperlやphpのソースコードをftpでサーバへ
転送するが、その必要が無い。
その場でwebアプリケーションとして動作させ、編集画面から直接実行することができる。
さらに、記述はBASICとhtmlを使用し、html記述言語として利用可。BASICコードを使って
htmlのマクロ的記述が可能。どちらかというとphpに近い。
RailsとかFrameworkより驚くほど簡単。

致命的な欠点は、日本語文字が扱えないこと。(LbertyBASICがマルチバイトに非対応)
Windows版/MacOSX版のフリーバージョンがある。有料版は$60位。

RunBASIC ←ダウンロードはここ。

インストールはexeを実行。インストール後プログラムを起動するとRunBASICのサーバ
が動作し、サーバ状態を示すダイアログが表示される。
その後、ブラウザで下記URLを表示する。

http://localhost:8008/

手元のPCで動いているRunBASICに接続する。


プログラム


input a

input文は入力がブラウザ上に現れる。

print "hello"

とすれば、ブラウザ上に文字が表示される。日本語は使用不可。
htmlをそのまま表示したければ、

html "<p>hello</p>"

等とすればよい。一部のHTMLが使用可能。
これらを使って英語のみ一行掲示板なども簡単に作成できるだろう。

ラベルは[]で囲む。
[label1]
	goto [label1]

ブラウザ上にグラフィックコマンドで絵を書く事も可能。
graphic #g,200,200
#g line(0,0,100,100)
render #g

ファイル入出力は従来のopen文を使う。
open "data.txt" forinput as #filein
input #filein, a
close #finein

これらを組み合わせれば、例えば定期的に為替データをgetし蓄積するスクリプトをサーバ上
バックグラウンドで動作させデータファイルに書き込み、
RunBASIC側でファイルをopenし、line文でグラフを書けば、そのまま為替チャートを表示
するwebアプリケーションが完成する。
同じような仕組みで天気、気温データやサーバ監視のwebアプリケーションも作成可能だろう。


画像のアップロードは、
upload "Choose a JPG file to upload. "; nameOfJpg$
loadgraphic #jpgImage, nameOfJpg$
render #jpgImage

などとすれば画像の簡易あぷろだが作成できる。

もしデータベースとしてsqlを使いたければ、組み込み型sqlであるsqliteが使える。予め
インターフェースが備わっている。
sqliteconnect #db, "Records.db"
query$ = "select * from table ..."
#db execute(query$)
print #db nextrow$(",")
#db disconnect()

等として実行することが出来る。
このほかWebオブジェクトとしてCSSスタイルシートやテーブル,ボタンやチェックボックス等が使える。

注意点


  • スタンドアロンWebアプリケーションのように動作させ、エディタ編集ページを
非表示にする場合は、"run full screen"をチェックする。

  • RunBASICのhttp接続はコネクトしてget/post後にすぐに切断される。

  • RunBASICのwebサーバはセッションを維持している。
複数のブラウザでページを表示しても個別に動作する。複数のクライアントから同時接続が可能で、
それぞれRunBASICは個別に処理される。セッションはCookieが保存。

  • 無限ループ自体はhttpのセッションタイムアウトが働くので一定時間後止まるが、サーバ側
は100%動作中でも他のページのセッション自体は遅延せず、問題なく動作する。

  • 安全性のため、htmlリンクは外部ネットワークへ張ることは出来ない。

  • URLは毎回ランダムに変わり、RunBASICの編集ページはセッションによって管理する。
特定のアプリを実行する場合直接URL指定出来ない。トップページからファイルをロードする必要がある。

  • プログラムは必ずJavaScriptが動作するWebブラウザで動作させる必要がある。

  • プログラム開発時は一度、RunBASIC上で保存を行ったほうが良い。

  • 日本語は扱えない。ブラウザのエンコーディングを変えても駄目。BASIC自体がマルチバイト
に対応していない為。

  • BASIC言語はLibertyBASICを使っている。