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