Rapid Application Developmentツール(2):Linux用ビジュアルBASIC

前回は、Rapid Application Development環境の2つのアプローチのうち、プログラミング/スクリプティング可能なデータベースフロントエンドについて書いた。続編の今回は、プログラミング言語として各種BASICを採用する、Linux GUIアプリケーション構築用のビジュアル開発環境について見ていこう。

まず、Microsoft Visual Basicについての話から始めよう。VBは意気盛んなLinux開発者たちの間では”諸悪の根源”といわれているが、ともかく、私たちは今Windowsを使っているわけではない。LinuxがWindowsベースのような欠陥を持ちうるだろうか。Linuxははるかに安全なプラットフォームではないだろうか。Windowsが成功したために、Geoworks Ensembleという使いやすい開発ツールが姿を消し、その成果だった多くの安価で使いやすいアプリケーションまでなくなってしまったのではなかったか。少なくとも、VB自体は迅速なプロトタイプ作成用のツールとして優れているといえないだろうか。

Microsoft社がVisual Basicの最初のバージョンをリリースしたとき、対象デスクトップオペレーティング環境はWindows 3.11だった。この最初のVBには、ドラッグアンドドロップでウィジェットを追加できるダイアログ/フォーム用ビジュアルデザイナ、簡単に学べるBASIC言語と対応インタプリタ、イベント(クリックなど)発生時の動作を定義するコマンドとプログラムを追加するコードエディタが備わっていた。

現在、私たちはデスクトップLinuxの成功の基盤を構築しているところだ。エンドユーザのためにはより多くのアプリケーションと選択肢が必要であり、Linuxソフトウェア企業にはより多くのビジネスチャンスが必要である。オープンソースかどうかにかかわらず、目標達成にはソフトウェア開発フィールドの繁栄が必須だ。ここで紹介するRADツールはその助けとなる可能性を持っている。これらは、Windows用開発からLinux用開発への道を容易にしてくれるからだ。

Phoenix Object Basic

Phoenix Object Basicは、元々はWindows用ソフトウェアだったものからきている。かつてVisual Basicの競合製品だったEnvelop BasicをLinux用に移植したものだ。オランダのJanus Software社が、Envelopの開発元が撤退するときEnvelop Basicの権利を獲得し、コードをLinuxに移植した。残念ながら、今はJanus Software社も閉業しており、同社のWebサイトは2001年以来更新されていない。もう1つ残念なことに、このソフトウェア自体はオープンソースではない。

Phoenix Object Basicは、Qt 2.2ライブラリに依存している。現在のLinuxコンピュータのほとんどはQt 3.xだけを使用しているので、Phoenix Object Basicを実行するには、ライブラリディレクトリにシンボリックリンクを作成して、libqt.so.3をlibqt.so.2にフェイクさせる必要がある。UnixODBCも必要だ。フォームデザイナが含まれているが、使えるウィジェットの数は非常に限られている。コードエディタは少し変わっていて、作成する実際のイベント用のコードしか表示しない。興味深いのはデータベースウィザードの機能で、任意のODBCソースに接続し、基本的な表示、更新、追加、削除用のフォームとコードを作成できる。このほか、プロジェクトマネージャとデバッガが付いている。

KBasic

<暴言>私はずっと長い間KBasic Webサイトをチェックして開発の進展をもどかしく待ち続けているが、このサイトを見るたび、いつもがっかりさせられる。</暴言>まったく残念なことだ。発想はすばらしい。広く普及しているデスクトップ環境を対象とし、成功したツールキットをベースにこの環境用のBASICインタプリタをプログラムし、次にRapid Application Developmentツールを開発するという計画。何が起きたのかは知らないが、KBasicは終わっているようだ。インタプリタと基本フォームデザイナはあるようだが、アルファやベータのテスト結果やリリースについて聞いたことがない。安定したバージョンのリリースは2003年夏と発表されていたが、期限は過ぎたままである。このプロジェクトがどこまで進行したのか、ぜひ知りたい。

XBasic

XBasicは、Linux用BASIC RADツールの化石の1つで、見た目も絶滅した恐竜のような感じだ。主に、科学、統計、グラフ分野のソフトウェアで使われているのではないかと思う。というのも、XBasicのWebサイトでは、データベースへのアクセス方法、といった業務用アプリケーションの実例が1つも紹介されていないからだ。XBasicはクロスプラットフォームで、Windowsと、Linuxを含むほとんどのUnixで使用できる。

XBasicで作成されたソフトウェアを試した感想といえば、まず明らかにウィジェットが見苦しいということだ。近頃のツールキットのウィジェットではない。思わずKDE 1.xの頃を思い出してしまう。アンチエイリアシングが話題ではなかった時代だ。GUIデザイナ、コードエディタ、デバッガも備えていて、多くの優秀な開発者と支援者がいるものの、私の考えでは、XBasicは現代的なグラフィカルインタフェースのプログラミングにはよい選択とは思えない。

Gambas

“LinuxにフレンチキスしているBASIC”とユーモアを込めて表現できるのがGambasだ。パリ出身のプログラマ、Benoit Mitsini氏は、増加する貢献者たちと共同でこの大規模なRAD環境を開発している。メーリングリストをモニタしていてわかったことだが、Gambasは最近Mandrakeに受け入れられた。これは、Mandrake 10 ProfessionalディストリビューションのCDに含まれるということだ。1.0リリースへの大きな前進に向けて、現在開発の焦点は、クライアントサーバアプリケーションのコードを簡単に作成するためのネットワークコンポーネントに置かれている。Mitsini氏と貢献者たちの実績には正に目を見張るものがある。

Gambasには、プロジェクトマネージャ、モジュラーコンポーネント、データベースマネージャ、フォームデザイナ、ヘルプブラウザ、コードエディタがあり、マルチドキュメントインタフェースを備えている。コードエディタのコンポーネントのデフォルト設定は好きではない。コードエディタで黒い背景に白と黄色のソースコードを表示したい人などいるだろうか。もちろん、この設定は変更できるが、デフォルトの外観にぎょっとする人もいることだろう。

それでもこのQtベースのソフトウェアは、現在手に入る最も進んだオープンソースRADツールの1つである。ほとんど完成しているし、たいへん使いやすく安定している。Mitsini氏の目標は、Microsoft Visual Basicのような開発上の失敗をしないことだ。Gambasの最新鋭の概念は、Webサイトの図で見ることができる。Gambasは多くの言語に翻訳されている。Gambasアプリケーションを実行するには、Gambasインタプリタコンポーネントをユーザのマシンにインストールする必要がある。

HBasic

2つ目の”ホット”なアプリケーションは、HBasicだ。ドイツ人プログラマ、Marcus Engels氏は、VB環境に非常に近いルックアンドフィールを持つアプリケーションを開発した。驚くべきことに、HBasicはたった一人のプログラマが作っているのだ。Engels氏は、HBasicはまだ実用化するほど安定していないと考えている。最新の0.9.9hリリースを体験した私も同感だ。ファイルダイアログコンポーネントをフォームに追加しようとしたらクラッシュした(前のリリースではこれは起こらなかった)。ちなみに、私はSlackware上のKDE 3.2 rc1でコンパイルした。

HBasicにはQt 3.2.3ライブラリが必要だ。ウィザードに従ってプロジェクトをセットアップでき、各種テンプレートが提供される。データベースアプリケーション用のテンプレートなどがある。デザインはモジュール化されており、プロジェクトには、データベースサポート用、リモートコンピューティングサポート用などのパッケージを必要に応じて追加できる。データベースマネージャ、テーブルデザイナ、デバッガのほか、コードフォールディング可能な優れたエディタコンポーネントがこのRADソフトウェアに含まれている。統合コンパイラでソースからバイナリを作成できる。RPMパッケージもメニューをクリックするだけで作成できる。

HBasicには非常に特殊な機能も備わっている。BASIC以外のプログラミングにも使えるのである。C++と、.NETプログラミングのC#もサポートしている。.NETサポートを使うには、dotGNUライブラリをインストールし、このオプションでHBasicをコンパイルする必要がある。

HBasicは、2番目に高い完成度を持つQtベース環境といえる。Gambas同様、必要なものはすべて揃っている。VBによく似たルックアンドフィールを持ち、VBよりバグの少ないHBasicは、Linux上のオープンソースVB代替環境として最も有望といえるだろう。

Realbasic

この特集の第一回のときと同様に、前述のオープンソース、フリーウェアプログラムと併せて、ここでも商用アプリケーションを1、2点紹介したい。Realbasicは、RapidQ(有名なWindowsフリーウェアBASIC RADツール)の開発者William Yu氏の所属する米REAL Software社の商用RADパッケージだ。同社は、昨年7月に同社のBASIC開発環境をLinuxに移植することを発表した。Realbasic Linux FAQによると、ベータリリースの予定は昨年12月、一般に入手可能になるのが2004年第1四半期の予定だったが、現時点ではダウンロードできるものは何も出ていない。同社は、Visual Basicコードを直接Realbasicコードに変換するアシスタントを含めたいとしている。そういう機能があったらMicrosoft VBでソフトウェアを作成している企業には非常に魅力だろう。これが実現すれば、各種ライセンスのLinux対応実動品質アプリケーションを瞬時に大量に生産できるのだ。REAL Software社は、すぐさま、Linux Rapid Application Developmentソフトウェア市場に巨大なシェアを得ることになるだろう。

Purebasic

Linux用商用アプリケーションとして2番目に紹介するのはPurebasicだ。これについて私が話せることはあまりないのだが、Webサイトを見る限りは有望だと思う。ほんの1ヶ月前、freenode.netのチャンネルリストを物珍しく見ていたときに、このフランスとドイツのRADツールを見つけたばかりなのだ。期限付き試用版のコンパイラと、コンパイル用サンプルアプリケーションを無料でダウンロードできる。59ユーロの商用パッケージにはビジュアルGUIデザイナとコードエディタが含まれている。MySQLやSQLiteなどのデータベースにも対応する。ファンと開発者による複数のサイトで、マニュアル、ステップバイステップ手順、ハウトゥガイドが提供されている。無料サポートは、今のところ、GambasとHBasicのわずかな資料と比べれば少し優れている。PurebasicはLinux、Amiga、Windowsで動作する。Windowsバージョンだけが最新版だ。Webサイトによると、Purebasicはゲームプログラミング分野で好調だという。

結論

Linux用のBASICプログラムを迅速に開発したい場合、選択肢はたくさんある。現時点においては、GambasとHBasicが最も完成度が高く、最も使用に耐えるものだと思う。Realbasicが予定どおりの機能を持つ製品としてリリースされれば、商用ソフトウェア企業から高く認められるだろう。RealbasicがVB/Linuxコードコンバータを他のどの製品より早く提供することになれば、大きな利益を生むことになる。

前回のデータベースフロントエンドRADツールについてもそうだったが、GTKツールキットとBASIC言語が使えるRADツールがまったくない。Gnome.org WebサイトでGnomeBasicというプロジェクトを見つけたが、ほんの少ししか進んでおらず、見たところ2001年以来何も進んでいない。GTKを選ぶユーザも開発者も大勢いるのになぜ何もないのだろう。ここで紹介したソリューションのうち4つがQtを使っているが、Qtは本当にそれほど優れているのだろうか。

この特集の最終回となる次回は、BASIC以外の言語用のRAD環境について検討する。

Michael ‘STIBS’ Stibane─―ドレスデン(ドイツ)近くのEastern Ore Mountains(いわゆる「Christmas County」)にある古い水車小屋に住む。Linux分野のフリーランスのトレーナーおよびコンサルタントとして働くほか、ドイツの2つのLinux雑誌に記事を執筆、またEscapade Scripting Language、MEPIS LinuxLPIのボランティアとしても活動。Linuxデスクトップ、Linuxターミナルサーバ、中小企業のLinuxシステム、およびLinux教育に関心を持つ。