読者です 読者をやめる 読者になる 読者になる

年金ロボットをめざして

FX(外国為替証拠金取引)自動運用ロボットの開発ブログのはずだった

wxBasic 2.8

どうやら wxbasic.net は David Cuny(wxBasic 開発者)が係わったものらしい。

【 wxBasic Version 2.8.12.30 - http://www.wxbasic.net/
f:id:fxrobot:20131130134940p:plain

David とメール交換したのは今から10年ほど前だったと思う。そのときはどこの国の人かなど気にもしなかったが、今考えてみると、どうやら David はドイツ人なのではないかと思う。

だとすれば wxBasic はドイツ生まれの Basic ということになる。実はこのところ、wxBasic のために google.de でぐるぐるしているのだ。

ドイツ国内のサイトでも英語のサイトが多いし、ドイツ語のサイトであってもプログラムコードは世界共通だ。とはいってもドイツ語では何が書いてあるのか想像も付かない。それで、英語もままならないぼくだけど、ドイツ語の辞書を買おうかとさえ考えているこのごろだ。:P

さて、2011年5月リリースの wxBasic 2.8.12.30 が存在したことは実にありがたい。このバージョンは wxWidget ライブラリの 2.8.12 を組みこんでおり、比較的最近の仕様となっていることもありがたいことだ。

【 wxEditor 4.0.2 - wxBasic のサンプルフォルダに入っている。作者は Dirk Noack 】

f:id:fxrobot:20131130141239j:plain

上は、Dirk Noack 氏(ドイツ人だろう)によるエディタで wxBasic で作られており、wxBasic のソースコードで提供されている。すごいよね。ぼく的にはちょっと興奮だ。

しかし、どういうわけかぼくの環境ではバギーなのだ。まともに動かない。ただね、ソースがあるので直してみようと思っている。この辺りは楽しいね。さて、画面をよく見てほしい。メニューがドイツ語だ。

メニューのなかに英語に切り替えられるだろう項目があったので、試してみたが切り替わらない。これもソースコードを追っかければ解決できることだろう。どうせならメニューを日本語にしてしまえばいいね。しかし、このエディタ、そもそも、日本語入力ができない。

で、まずは、フォントをどうやって変更するのかを調べた。
↓ ここにサンプルコードがあったのであっさり解決。
http://wiki.wxwidgets.org/WxFontDialog-WxBasic

f:id:fxrobot:20131130143056j:plain

上は、フォントダイアログ テストのプログラムを実行した画面。
「フォント変更」ボタンを押すと下の画面。

 f:id:fxrobot:20131130143225j:plain

変更したフォントで表示することができた。

f:id:fxrobot:20131130143238j:plain

まだ調べなければならないことも多いが、フォントについてはこれで手掛かりができたと思う。

ところで「日本人が使えるフリーの GUI が可能な Basic」にはどんなものがあるだろう。ぼくには FreeBasic、ActiveBasic、thinkBasic、wxBasic、AutoIt、が思い浮かんだ。

FreeBasic には Window9 がある。これは素晴らしい。しかし、簡単、お手軽という感じはしない。ただし、それはぼくの勉強不足だけかも知れない。thinBasic は GUI についても素晴らしいと思うが、簡単という意味では Win32API GUI < thinBasic < wxBasic という感じだ。

ActiveBasic は唯一の国産 GUI 可能 Basic ともいえるが、GUI の充実度がもう一つだ。というわけで「日本人が使えるフリーの GUI が簡単に可能な Basic」という条件にしてみると、それは AutoIt と wxBasic ではないかと思うのだ。

この条件におけるぼくの一番のお勧めは AutoIt だ。wxBasic じゃないのかい。いやね、AutoIt は完全な Unicode 対応だし、日本語の情報もけっこうあるし、日本国内でもすでにある程度は普及しているようなのだ。

wxBasic は日本ではマイナーでアウトローだろう。だって、google.co.jp で wxBasic を検索してみたらわかるよ。1つ目が、David のサイトで 2つ目が wxbasic.net で 3つ目には「wxBasic - 年金ロボットをめざして」が出てくるんだよ。ぼくは驚くと同時になんだか責任を感じてしまったよ。wxBasic について調べたくて検索したら、自分かよっ!ってことだから、こりゃ、リカーシブコールだね。

で、次に AutoIt の話しを少し。:P

【 AutoIt 3 - http://www.autoitscript.com/site/
【 AutoIt v3 ドキュメント 日本語訳プロジェクト
- http://blog.livedoor.jp/blackcode/archives/1224220.html
f:id:fxrobot:20131130152215j:plain

日本語訳プロジェクト。
素晴らしい!
これで誰でも楽々理解だ。
ぼくもお世話になっている。

しかし、AutoIt のドキュメントは易しいので英語でも OK だ。それはそれで心強いことだ。

ところで、日本には「なでしこ」と「プロデル」がある。 とくになでしこは完成度が高く、ぼくもなでしこでプログラムを書いたことがある。 GUI が実に簡単に書ける。

しかし、Basic じゃないし、なでしこ以外はつぶしが効かない。Basic という言語のよいところは、その基本が処理系を越えて生き続けていくというところだ。 AutoIt も Basic が生きている。それに GUI の構造が実に簡単で理解しやすいものだ。

 GUICreate() 一発でウィンドウを作ることができる。
ちなみに wxBasic の場合は wxFrame() 一発だ。

f:id:fxrobot:20131130153243j:plain

 AutoIt には、SciTE というエディタが標準で付いている。エディタから実行やコンパイル、ビルドが直ぐにおこなえる。AutoIt はコンパイラ言語ではないが、バインドツールが付いているので、それを呼び出しているんだろうね。上の画像でわかるように日本語もほぼ問題ない。

 f:id:fxrobot:20131130153257j:plain

 上は GUI テストプログラムの実行画面。こんなリッチな GUI が簡単に実現できる。

wxBasic も wxWidgets を組みこんでいることもあり高度な GUI 機能をもっており、ドキュメントの問題だけがその泣き所。英語のドキュメントもライブラリ名が列挙されているだけという感じ。いや、この話はまたとしよう。

AutoIt は、GUI が簡単な Basic という側面だけではなく、Windows 環境を制御できる言語だという面がある。国産に UWSChttp://www.uwsc.info/)という Windows 自動化ソフトと銘打ったフリーソフトがあるが、AutoIt はそれに匹敵するものだと思う。ちなみに UWSC は Basic の文法に近い言語だ。しかし AutoIt ほどの GUI 機能は持っていない。

さて、下は AutoIt 3 に標準で付いている AutoIt 3 Windows Info というツールを実行したところだ。他のアプリケーションなどの情報を取得して、その情報を利用して AutoIt のプログラムで制御するのだ。

f:id:fxrobot:20131130153312j:plain

ちょっと寄り道をしてしまったが、この AutoIt と wxBasic の2つが、現在、日本人が使える GUI を簡単に実現する Basic 言語であるということなのだ。

どちらも日本語化がおこなわれていない英語圏のソフトウェアだが、AutoIt は日本語のドキュメント(日本語訳プロジェクト)もあり、SciTE のメニューが英語であること以外は、国産 Basic 言語とそれほど遜色はないだろう。むしろそのドキュメントの充実度からは優位であるとすらいえるかも知れない。

この AutoIt と比べると、wxBasic には苦難の道があるかも知れない。しかし、Basic 言語としては wxBasic は魅力的なのだ。wxBasic は簡易ではあるがオブジェクト指向OOP)機能を持つモダンな Basic 言語だ。AutoIt よりもより Basic らしい言語だ。

それがあるからこそぼくは wxBasic に拘るのだ。

英語がポンコツなぼくだけど、wxBasic が日本人にもっと使ってもらえるように何かをしたいという気持ちがある。なにより wxBasic は実に簡単に GUI のプログラムが書ける魅力があり、さらに高度な GUI 機能も持っているのだ。これをなんとか使いたいと思うのも自然なことだろう。

David が次のバージョンを出してくれることを祈るばかりだ。