REALbasic
出典: フリー百科事典『ウィキペディア(Wikipedia)』
REALbasic(リアルベーシック)は、REAL Software社によって開発されたソフトウェアの開発ツールであり、オブジェクト指向を採用した独自のBASIC言語を使用し、統合開発環境を備える。かつては「CrossBASIC」と呼ばれた。 予め備えられている機能が豊富なことやGUIのデザインが簡単であること、非常に理解しやすい言語仕様などから、とくに初心者に愛用される。 日本では株式会社アスキーソリューションズが代理店となり販売およびサポートを提供していたが、2007年4月に開発元であるREAL Software社に移管されることが発表された。
主にMacintosh版が知られ、しばしば「Macintosh版のVisual Basic」と喩えられるが、Windows版ならびにLinux/x86版も存在する。また、REALbasicを利用している環境に関わらず、全てのプラットフォーム用の実行バイナリを出力することができるため、双方向のクロスプラットフォーム開発が可能である。
なおREALbasicは、Universal Binaryアプリケーションを作成することのできる唯一のサードパーティ開発ツールである。
目次 |
[編集] REALbasicの機能
REALbasicの主な機能は以下のとおり。
[編集] 機能と特徴
- イベント駆動型の構造化された完全なオブジェクト指向言語
- REALbasicやランタイムが不要な単独のアプリケーションにビルドできるコンパイラ言語
- 参照カウント方式のガーベジコレクションを採用
- マルチリンガルに対応した豊富な文字列操作メソッド
- Perlと同等の正規表現による強力な文字列検索メソッド
- 文字列はUnicode(UTF-8)で処理するため、言語に依存しないアプリケーションが開発できる
- 各プラットフォーム間で、ソースコードは完全に互換(OS依存の機能を使用している場合を除く)
- Macintosh Toolbox(Toolbox)を学ぶ必要がない
- ビジュアルインターフェースビルダによるGUIのグラフィカルなデザインが可能
- マルチメディア機能に長けている
- GUIを持たないコンソールアプリケーション、サービスアプリケーションも作成可能
- アプリケーションサイズが大きい(後述)
- 処理速度は他の開発環境で作成したアプリケーションに比べて遅い
- ダブルクリックで起動できるアプリケーション以外のプログラム(プラグインや機能拡張など)は作成できない
[編集] 習得のしやすさ
Macでのプログラミングを複雑にしているToolboxやその他のAPIを学ばずに済む点は初心者にとって非常にありがたい点であるが、同時に、複雑な機能を実現することが難しくなっている。それをカバーするためにプラグインシステムなどが採用されており、サードパーティから優れたプラグインが多数開発されている。 言語仕様については、BASIC言語をベースにしているため、基本的な命令その他習得の容易さは他の追随を許さない。また、オブジェクト指向的実装についても、クラスやインターフェイスなど、Java相当の機能を実現している。
[編集] マルチメディア機能
マルチメディア機能についてはQuickTimeの機能をかなり引き出すことが可能であり、ビルトインの命令としてQuickTimeムービーを編集する機能も備える。グラフィック周りは、処理の遅さに目をつぶれば、ラスターイメージからベクターイメージ、3DCGまでを扱え、256階調グレースケールマスクによるアルファブレンドも簡単に実現でき、ソフトウェアレベルでスプライト機能さえも有する。スプライトに関しては一切コーディングすることなくスプライト同士が接触したかを判定することまで可能。画像の透過に関しては、アルファブレンドを有しながら特定の色を透過したりアルファチャネルが使えないなど、中途半端な感もある。
[編集] 巨大なアプリケーション
アプリケーションサイズが大きいというのはREALbasic製のアプリケーションのあまり望ましくない特徴といえるだろう。たとえば、何もコーディングを行っていない場合であっても、CFM Carbonとしてコンパイルすると約1.5MB、Mac OS Xに最適化されたコードであるMach-O Carbonでコンパイルすると約3MBのファイルサイズを消費する。これは、REALbasicのフレームワーク自体をアプリケーションに内蔵してしまうためである。また、アプリケーション内で特定のコントロールや機能(例えばXMLパーサなど)を使用している場合、さらにファイルサイズは増加する。
とはいえ、今日のPCにおいてはハードディスクの容量も十分に大容量化されており、ファイルサイズの大きさが問題となる場面はあまりないと言える。
[編集] 処理速度
処理速度の遅さもREALbasic製のアプリケーションの特徴。とくにグラフィックや多言語関係の機能は著しく遅い。このため、処理速度を補う目的で、内蔵関数と同等の機能を備える高速なプラグインを作成することもしばしば行われる。
[編集] フロントエンドの開発
サーバやデータベースのフロントエンドや、UNIXシェルやDOSコマンドラインのGUIフロントエンドの開発するための各種命令も豊富。
[編集] Mac OSの機能への対応
- AppleScriptやAppleEventのサポートにより、他のアプリケーションと連携することも可能
- UNIXコマンドを実行可能
- 「Quartz」を利用した平面画像の描画、「Quesa(オープソースのQuickDraw 3D互換3Dグラフィックライブラリ)」による3D描画のサポート
- リソースフォーク、バイナリデータのリトルエンディアンとビッグエンディアンの使い分け、255文字までのロングファイルネームなどもサポート
- キーチェーン・Spotlight・アドレスブックへのアクセスをサポート
- Toolbox、PowerPC共有ライブラリ(InterfaceLibなど、他のアプリケーションが共有できるPower Mac用サブルーチン群)へのアクセスの対応
- GUI部品のAquaでの描画に対応
[編集] Windowsの機能への対応
- OLE(COM)、タスクトレイの使用をサポート
- マルチドキュメントインターフェイス(MDI)のサポート
- Windows XPのサポート、GUI部品のLuna(Windows XP標準の外観)での描画に対応
- Win32 APIへのアクセス、レジストリへのアクセスのサポート
- DOSコマンドを実行可能
[編集] 自動メモリ管理
メモリは自動的に管理しているため、プログラマはメモリに関して特に意識しせずに開発が可能である。参照カウントを用いたガーベジコレクションも備える。
[編集] 優れた拡張性
プラグインを組み込むことによりIDE自体の拡張が行えるほか、Mac OS版ではXCMDやXFCN、AppleScript、AppleEvent、UNIXシェル、PowerPC共有ライブラリなどを利用することで、言語が備えていない機能を実現することも可能である。
[編集] REALbasicの現状
2008年5月6日現在、英語版はバージョン2008 Release 2、日本語版はバージョン2006 Release 3がそれぞれリリースされている。なお、2006年10月、バージョン2006 Release 4 のリリースで Universal Binary に、2007年11月、バージョン2007 Release 5 のリリースで Leopard に対応した。
[編集] サンプルコード
//コメントは“//”“'”あるいは“REM”を用い、改行までがコメントとみなされる Dim result As Integer //変数宣言と型定義。変数名“result”を“Integer”(整数値)型として定義 result = Pow(10, 10) //10の10乗を計算し、resultに代入 MsgBox Str(result) //メッセージボックスにresultの内容を文字列として表示