この文書は Runtime社のホームページの http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/index.html からの一連のリンクを邦訳したものです。この文書の文責はUDIにあり、またUDIはこの文書についての一切の債務を負いません。書かれ時期が少し古いため、分かる範囲で最新情報を注釈として入れてありますが、訳者に最新版の REALbasic についての知識が無いため、結果として不公平な記事になっている可能性もあります。間違いがありましたら eudio@chabashira.co.jp までお知らせ下さい。この文書は必要と思われる時に適宜アップデートされます。


Info > More Information > Revolution Head-to-Head


Introduction

Abstract - 要約
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/abstract.html
タイトル:Revolution and REALbasic: A Comparison
日付:22 September 2001, Modified October 21st 2001
執筆者:Geoff Canyon, President, Inspired Logic, LLC
製品:Revolution 1.0, by Runtime Revolution Ltd.
   REALbasic 3.2.1, by REAL Software, Inc.
対象者:技術評論家
    IT専門家
    企業、またはプロの開発者
    高水準開発ツールのユーザー
    スクリプター、ウェブデベロッパー
    マルチメディアデベロッパー
記事:REAL Software, Inc の製品である REALbasic と、Runtime Revolution Ltd の
   製品である Revolution。2つのクロスプラットホーム高水準開発言語の
   長所と弱点を比較する。

記事はこちら
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/index.html
PDF ファイルはこちら
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev.pdf

Revolution と REALbasic でビルドしたサンプルアプリケーションはここからダウンロード可能
http://www.runrev.com/revolution/info/compare/realbasic/example-apps.sit


Executive Summary - 比較の概要
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/execsummary.html
 ソフトウェア開発は 1980年代後期にドラマチックに変わった。新しいタイプの開発環境 ― 高水準開発( HLD )ツール ― が爆発的な人気を博した。初心者にも習得が容易で開発効率が高いため、トータルの開発時間を劇的に短縮することが出来る。この白書では、REALbasic と Revolution と言う、2つの新しい HLD 環境を評価する。

REALbasic*1
 REALbasic は Macintosh で動作し、Macintosh と Windows PC 用のアプリケーションを作ることが出来る。 REALbasic は Visual Basic に良く似ており、VB 経験者には親しみやすい。 REALbasic のスクリプトが持つ厳密なオブジェクト指向、C 言語ライクな文法、強力な変数タイプは、従来のプログラマに喜ばれるだろうが、初心者の開発作業を困難にしている。 REALbasicには組み込みのデータベース機能と、外部データベースへの接続機能がある。またスプライトエンジンを持ち、Macintosh プラットホームによく適応している。

 REALbasic は Mac OS X と classic Mac OS で動作する。 REALbasic の開発環境自体は Macintosh 専用(訳注:現在は Windows 版もあります)のアプリケーションであり、遠隔操作による Windows のデバッグはかなりの努力を要する。

 REAL Software は頻繁にベータ版をリリースする。これによって開発者は REALbasic の新しい機能を試すことが出来、時に一部の開発者はベータ版と正式版とをほとんど区別せずに使う。

Revolution*2
 Revolution は Macintosh、Windows、Linux と、Unix ファミリーで動作する。 Mac OS X 版とデータベース接続機能は 2001 年の第3四半期に予定されている。(訳注:リリース済み) 任意のプラットホーム上で任意のプラットホームをターゲットにした開発を行うことが出来る。(訳注:マック用の開発にはマックが必要) Revolution は新しい開発環境だが、定評ある技術をベースにしている。

 Revolution はより多くのプラットホームをターゲットに出来るが、その全てのプラットホームで開発作業が行えるためマルチプラットホームのデバッグ作業は容易である。 Revolution のコードは Transcript と呼ばれる、英語のような高水準言語を使って書かれる。 Revolution の開発環境はより柔軟で、ユーザーフレンドリーである。開発者は開発環境に何かを足したり、直接変更を加えることが出来る。 Revolution のプロジェクトは、起動中に変更を加えるたりデバッグすることが出来るため、開発スピードが速い。

 Revolution も精力的に新バージョンをリリースするが、ベータ版と正式版はより明確に区別されている。

開発比較
 両方の開発環境で同じサンプルアプリケーションを作成した。 Revolution バージョンは半分のコード、半分の時間で開発することが出来、デバッグも容易だった。

結論
 どちらの環境も、商品レベルのアプリケーションを素早く作ることが出来る。 Visual Basic の経験を持つ Macintosh 開発者なら、強力なデータベース機能と、VB に良く似たオブジェクト構造を持つ REALbasic を賞賛するだろう。しかし一般的に、高級言語を使ったツールは、Java や C++ のような低レベルのプログラミング環境が得意としてきた分野が苦手である。より強力なクロスプラットホーム機能 ― 特に Linux と Unix ― を持つ効率的な開発ツールを探している開発者は、むしろ Revolution を好むだろう。


Introduction: - 序論
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/introduction.html
 かつてのコンピュータプログラミングは、相当のトレーニングを要す、退屈で、骨の折れる作業であった。グラフィカルユーザーインタフェース(GUI)コンピュータが人気を得た時期( 1980 年代後期から)に、多くの革新的な高水準開発(HLD)ツールが現れた。プロの開発者は従来のツールが必要としていたよりも、全ての開発努力が半分から60分の1に小さくなり、開発コストと労力が著しく軽減される*3のを目の当たりにした。開発中のどの場面でもアプリケーションのインターフェースや機能を変更することが出来るが、これは C や C++ などの従来ツールでは考えられないことだった。そしてそれまでプログラミングに無縁だった人々にも、商品レベルのアプリケーション開発が可能になった。

 HLD ツールには様々な形態や規模のものがあるが、一般的にはこれらの機能を提供する:

1. シンプルな言語*4を使って、よく使われる強力な機能にアクセスすることが出来る。これらのツールの価値は、言語仕様と、組み込まれた機能によって決まる。必要な機能を持たないツールは、検討対象から外される。
2. インタプリタや即時コンパイル言語を搭載し、従来からの、コーディング-コンパイル-実行-テスト、という開発サイクルを、コーディング-実行-テスト、という、より速いものに短縮した。
3. グラフィカルインターフェース( GUI )によるデザイン環境を持ち、開発者はまるでドローソフトを扱うようにアプリケーションのレイアウト作業*5を行うことが出来る。従来の環境では開発努力の 80% がインターフェース作成に割かれていたが、GUI ツールはもっと低い。
4. 複数のオペレーションシステム用のアプリケーションを自動的に仕上げることが出来る。

 多くの環境がリリースされている。それぞれはターゲットとする市場に特化した機能を持っているが、一般的にはこのような機能を持つものが多い:

* 強力なテキスト処理を含むファイル処理能力
* グラフィック/マルチメディアベースのアプリケーション
* データベースのフロントエンド開発
* ウェブを意識したアプリケーション
* ウェブサーバ用の CGI
* 一般的なクロスプラットホームのアプリケーション/ユーティリティ開発

 この白書は、REAL Software, Inc. の REALbasic と、Runtime Revolution Ltd. の Revolution という、2つの新しい HLD を比較するものである。作業内容や目的がはっきりしている場合は、必要となる機能を持っているかが HLD 選択の一番大切な基準になる。この白書では目的を絞らず、一般的な見地から Revolution と REALbasic を比較する。


REALbasic and Revolution

Description of the Market - 市場について
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/market.html
 1980年代の後期以降、多くの高水準開発環境が現れ、各開発者は簡単に、速く、一番適した方法でアプリケーションを開発出来るようになった。多くの開発環境はすぐに消えていったが、注目すべきは HyperCard*6、Perl*7、Visual Basic*8、そして Java*9 である。

 HyperCard は一番最初に現れ、そして Visual Basic を含む多くの環境に影響を与えた。

 Perl は多くのインタラクティブなウェブサイトで使われている。 Perl は強力なアプリケーションを作ることが出来るスクリプト言語であるが、インターフェース構築ツールを持ち合わせていない。

 Visual Basic は Windows アプリケーション開発の法人市場を作り上げた HLD ツールで、現在でもそのプラットホーム上で君臨している。

 Java は "write once, run anywhere"(書くのは一度、実行はどこでも)というコンセプトによって、あるプラットホーム上で開発したアプリケーションを、他のハードウェアやオペレーションシステム上で実行することを可能にした。

 そして現在、HyperCard 言語は Apple に見捨てられている。 Perl はまだネイティブのインターフェースキットを持たない。 Visual Basic は Windows 上では優位にあるが、他のプラットホームには対応しない。 Java の掲げたコンセプトは時に "write once, debug anywhere"*10(書くのは一度。デバッグはどこでも)に変化している。(そして Visual Basic と Java は Microsoft の C# に脅かされている)

 クロスプラットホーム HLD の市場は適当な製品を失ったのだろうか? いや、本当に使い易く、今もアップデートが続けられ、完全なクロスプラットホームのツールとして、REALbasic と Revolution がある。


Overview of Revolution - Revolution の概要
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/revolutionoverview.html
 Revolution は定評ある技術をベースにした、新しい開発環境である。 Mac OS、Windows 95/98/NT/2000/ME、Linux、Linux PPC、Sparc、AIX、そして Unix (とそのファミリー)で実行することが出来る。 Revolution は、強力で特色あるアプリケーションを、全てのメジャープラットホーム向けに、素早く、簡単に、ロイヤリティフリーで配布することが出来る。(訳注:現在は OS X、Windows XP にも対応しています)

 Revolution は HLD ツールの標準的な機能を持っている。グラフィカルなインターフェースデザイン環境、理解しやすく非常に強力な Transcript 言語、インターネットプロトコル、配列処理、正規表現などのローレベルな機能にも、簡単な構文でアクセス出来る。

 Revolution はこれら多くの機能をリファインし、パワーアップして来た。クロスプラットホームに必要な部分は自動的に処理される。 プロファイルに収めた多くの情報を使ってアプリケーションのユーザーインターフェースを切り替えることが出来るため、Revolution の多国語言語対応はシンプルである。

 さらに、Revolution は開発ツールも魅力的である。ひとつのコンピュータ上で、全てのプラットホームのルックアンドフィールでプロジェクトをプレビューすることが出来る。(訳注:一部非対応) 変数やプロパティを操作して、実行中のプロジェクトのレイアウトをスクリプトから変更することが出来る。メッセージボックスを使って、いつでもスクリプトを実行することが出来る。開発環境は Revolution 自身からアクセスしたり拡張することが可能で、開発工程の自動化の可能性も持っている。

 Revolution は、最も柔軟性に富んだ高水準言語による開発環境である。ユーザーインターフェースは多くのイベントをサポートしているので、効果的に機能を実装することが出来る。実行時にコントロール(とコード)を作ることが出来るのも、柔軟性を高めている。開発者は何でも出来るし、何でも可能にすることが出来る。

 Revolution は、GIF、JPEG、PNG、ベクターグラフィック、AIFF サウンドファイル、QuickTime、QuickTime VR、そして HTML といったマルチメディアを完全に統合している。

 Revolution は Runtime Revolution Ltd. で開発されており、拠点はスコットランドのエディンバラにある。 Revolution のスタンダード版は $349、印刷されたマニュアルと eMail による1年間の技術サポート及びアップデートが付くプロ版は $995 で提供されている。どちらの版も機能的には変わらない。教育機関向けのディスカウントには、大幅な割引が適用される K-12 パッケージがある。(訳注:価格体系は時々改定されます)

 趣味の開発者は無料の Starter Kit を利用することも出来る。全ての機能を利用出来るが、スクリプトの長さに制限がある。

 そして GUI を持たず、スクリプトの長さに制限のないサーバ用 CGI エンジンは無料で提供されている。


Overview of REALbasic - REALbasic の概要
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/realbasicoverview.html
 REALbasic は市場に登場して3年になる。 Mac OS 上でしか実行できないが、Macintosh 用だけでなく、Windows 95/98/NT/2000/ME 用のアプリケーションも、機能制限なしで作ることが出来る。(訳注:現在はバージョン 4 を越え、XP もサポートされています)

 REALbasic は HLD ツールの標準的な機能を持っている。オブジェクト指向の環境を持ち、その言語は BASIC の一種である。オブジェクト指向に馴染んだ人は、REALbasic の環境を違和感無く受け入れるだろう。 PC の Visual Basic との互換性は無いが、VB 経験者なら簡単に REALbasic のコードに変換できるようデザインされている。

 アプリケーションインターフェースのレイアウトはビジュアル環境で行うことが出来る。 REALbasic はシンプルな開発工程を持つだけでなく、デフォルトで標準の大きさのコントロールを作ることが出来、それらの位置を簡単に揃えられるなど、多くの部分が便利に自動化されている。

 REALbasic は高レベル言語から多くの低レベル機能にアクセスする事が出来、OS ルーチンを直接利用することも可能である。

 REALbasic は各プラットホームのネイティブインターフェースの外観を提供する。

 REALbasic は、スプライト機能、オフスクリーンを使ったイメージ操作、QuickTime、QuickTime VR、QuickTime 音源, ループサウンドファイルをサポートする。

 プロ版には Windows 用アプリケーションを作る機能があり、データベース機能が加えられている。 REALbasic には SQL データベースへのアクセス機能と、組み込みのシングルユーザー型データベースエンジンが内蔵されている。

 REALbasic はバージョン 3 になるまでに急激な発展を遂げた。バージョン 1.0 は純粋に Macintosh 用の製品だった。バージョン 2 でデータベースアクセス機能を持ち、更に Windows OS をターゲットに加えた。バージョン 3 では OS X 互換を果たした。 REAL Software の活発なベータプログラムにより、ベータで試された多くの機能が迅速にリリースされている。

 REALbasic はアメリカテキサスのオースティンにある REAL Software, Inc. によって開発されている。 REALbasic のスタンダード版は $149.95 で提供され、データベース機能を持たず、Macintosh アプリケーションだけを作ることが出来る。$349 で提供されるプロ版は全ての機能を持つ。機能と時間制限のあるトライアル版が無料で提供されている。スタンダード版とプロ版の両方に教育機関向けディスカウントがある。(訳注:現在は価格体系が変わっています)


REALbasic Strengths - REALbasic の長所
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/realbasicstrengths.html
 REALbasic は3回バージョンアップしている。荒削りだった多くの機能が洗練されている。大きく、安定したユーザーコミュニティが存在する。

 REALbasic の大きな長所のひとつは、データベース指向のアプリケーション開発である。プロ版には組み込みのデータベースエンジンがあり、また多くのサードパーティ製のデータベースにアクセスすることが出来る。

 REALbasic は、Mac OS と Windows 用のアプリケーションを簡単に作ることが出来る。

 REALbasic は、インターフェースのコントロール配列を使ったユーティリティや一般的なアプリケーション開発をターゲットにしており、ロイヤリティフリーでアプリケーションを配布することが出来る。

 REALbasic はオフスクリーンを使ったグラフィック操作やスプライトエンジンを持っており、ゲームの開発に重宝する。

 REALbasic の持つ、オブジェクト指向による開発スタイル、厳格なスコープ、厳格な変数の型などは、これまで慣れ親しんで来た快適な環境に良く似ている。

 REALbasic のコードエディタウィンドウには、編集したルーチンに素早く移動するための履歴ボタンがあり、また全てのオブジェクトとルーチンには、コードにアクセスするためのポップアップメニューがある。

 REALbasic には Visual Basic のエキスパートが欲しがるような機能がいくつかある。 言語仕様は Visual Basic に良く似ており、Visual Basic のフォームやメソッドをインポートすることが出来る。

 REALbasic は Macintosh に特化した機能を融合しており、Macintosh で使う Macintosh 専用アプリケーションで、より強みを持つ。例えば、アプリケーションから AppleScript 対応のダイアログを作ることが出来る。ドラッグ&ドロップがフルサポートされている。特別なコーディングなしでバルーンヘルプを利用できる。

 REALbasic は Mac OS X に対応している。(まだ全ての機能を使うことは出来ず、最初は OS X をターゲットとすることが出来るだけである)(訳注:現在は OS X がフルサポートされています)

 REALbasic は簡単な開発作業で、ひとつのファイルで構成されるアプリケーションを作る。これは Revolution も同じである。 REALbasic と Revolution は、他の多くの HLD ツールよりも強力なアドバンテージを持っている。

 REAL Software は毎週のように精力的なベータリリースを続けており、開発者はそれによって、将来どんな機能が実装されるのかを理解することが出来る。


Revolution Weaknesses - Revolution の弱点
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/revolutionweaknesses.html
 Revolution は新しい開発環境である。定評ある製品は、ウェブ上の資源、ユーザー同士によるサポート、広範なサンプルコードやユーティリティなどを利用することが出来るが、Revolution はこれからである。

 ドラッグ&ドロップ、バルーンヘルプなどのマック特有の技術は、まだ十分にサポートされていない。(ツールチップはサポート済み)

 現在は OS コールではなく、独自のルーチンを使ってユーザーインターフェースのコントロールを描いている。このためクロスプラットホームを容易に実現できるが、全てのプラットホームで正確な外観を実現するのは困難である。 Macintosh でネイティブのコントロールが使えるようになるのは 2001年の第3四半期を予定している。

 Revolution は完全なクロスプラットホームであが、クロスプラットホーム開発者にとっては、まだ荒削りなところが残っている。例えばフォントとフォントサイズはプラットホーム毎に異なるので、設定を変えなければならない場合がある。( Profile Manager を利用して、アプリケーションのユーザーインターフェースをいくつも保存し、必要に応じて切り替えることも出来る)

 Mac OS X 対応とデータベース接続は 2001年の第3四半期を予定している。 REALbasic が Mac OS X 対応になれば、Revolution は後れをとることになるかも知れない。(訳注:現在はどちらもサポート済み)


REALbasic Weaknesses - REALbasic の弱点
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/realbasicweaknesses.html
 Windows 用のアプリケーションを作ることは出来るが、REALbasic 自体は Macintosh 専用のアプリケーションである。純粋な Windows 開発者や Unix 開発者はこれを使うことは出来ない。

 Macintosh 開発者が PC 用アプリケーションを作ろうとする場合、Windows 版 REALbasic が無いのは大きな痛手である。 PC 用のデバッグ作業(PC上でのデバッグである-念のため*11)には遠隔操作が必要で、このため多くのラピッド開発ツールが実現している、コーディング-コンパイル-実行-テスト、の開発サイクルが崩れている。コンパイルしたアプリケーションファイルをテストの度に PC へ転送する必要がある上、Windows 用のアプリケーションをデバッグするツールは存在しない。(訳注:現在は Windows 版がリリースされています)

 REALbasic は Linux や他の Unix 用のアプリケーションは作ることは出来ない。

 REALbasic は一度にひとつしかプロジェクトファイルを開くことが出来ない。このためプロジェクト内のリソース(コードや部品)を他のプロジェクトに移すのが困難で、生産性を落としている。

 REALbasic は高級言語であるにも関わらず、C++ のようなローレベルツールと似たところがある。元々オブジェクト指向には変数とオブジェクトに厳密な型があるため、開発経験者でさえ混乱することがある。例えばオブジェクトのプロパティを設定するには、オブジェクトの参照をそのオブジェクトの型にキャストしなければならない*12。時に開発者はオブジェクトの参照を得るために、構文の決まりを破ることさえある。 REALbasic は従来のローレベル言語が持つ、コーディング-コンパイル-実行-テスト、という開発サイクルを打ち崩すには至っていない*13。

 REALbasic はコードエディタを(プロジェクトのウィンドウごとに)一度にひとつしか開くことが出来ない。その結果、同じウィンドウ上にある2つのコントロールのコードを一度に見ることが出来ない。つまり関連するルーチンを参照しながら編集することが不可能である。

 REAL Software は毎週のように*14ベータ版をリリースしているが、それは有利な点でもあり、また不利な点でもある。 REALbasic には完全にデバッグされたバージョンが無く、新しく追加された、時に不安定な機能を使って開発を続けなければならない。開発者は最後にリリースされたベータ版を安易に使ったり、安定しているベータ版を使い続ける傾向がある。


Revolution Strengths - Revolution の長所
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/revolutionstrengths.html
 Revolution 自体はクロスプラットホームではないが、真にマルチプラットホームな開発ツールである。 Windows、Linux、UNIX、Macintosh の各環境で作ったプロジェクトを簡単に他のプラットホームへ持ち込むことが出来、これらのプラットホームから全ての環境をターゲットにすることが出来る。(訳注:マック用の開発にはマックが必要)

 各プラットホーム用の Revolution が用意されているので、開発者はターゲットのプラットホームでデバッグ作業を行える。高級言語を使った開発ツールの大きな目的のひとつは、コーディング-コンパイル-実行-テスト、の繰り返しを避けることである。 Revolution は他のプラットホーム上でのデバッグが可能で、性能を犠牲にすることなく各プラットホーム用の配布ファイルを自動的に作ることが出来る。

 Revolution はひとつのファイルで構成されるアプリケーションを簡単に作れることが出来る。これは REALbasic も同じである。

 Revolution のイベントモデルは、REALbasic のものよりも充実している*15。

 Revolution の特長のひとつに対話的な開発環境が挙げられる。 Revolution は多くの HLD ツールと違って、開発中の変更点をメモリ上に置いている。開発者はプロジェクトの実行中にもコード変更やデバッグ、及びインターフェースの変更が可能である。従来の HLD ツールの持つ、コーディング-実行-テスト という開発サイクルから更に進んで、デバッグのためにアプリケーションを再起動する必要の無い、コーディング-テスト というサイクルを実現している。開発スピードが非常に速い。これに比べると REALbasic のソースコード編集などは古くさく見える。

 Revolution は、正規表現、型を持たない変数、チャンク表現、配列、をサポートし、ファイルやテキスト処理のアプリケーション作成に非常に適している。

 Revolution は高級言語からインターネットのプロトコルにアクセスすることが出来る。コマンドひとつでウェブサーバからウェブページを取り出すことが出来る:

get url "http://www.yahoo.com"
 Revolution 開発環境を変更、拡張して、開発効率を改善することが出来る。単純な繰り返し作業は簡単に自動化することが出来る。 Revolution の開発環境は Revolution で作られているので、開発者はそれを直接コントロールしたり、改良することが出来る。

 Revolution の言語である Transcript は英語に良く似ており、初心者にとって他の言語よりも習得しやすい。任意のオブジェクトから、名前、id、番号を使って、他のオブジェクトやそのプロパティを参照することが出来る。グローバル変数がサポートされており、ルーチン間の連絡が容易になっている。

 同時に、Transcript は熟練した開発者に素晴らしいパワーを提供する。 getProp と setProp ハンドラによって、カスタムプロパティのカプセル化が出来る。パラメータは値渡しも参照渡しも可能である。ビルドされたアプリケーション上で Transcript 文を作って、その場で実行することも出来る。

Development of an Example Project

Example Project Description
- サンプルプロジェクトの説明
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/exampledescription.html
 2つの環境を比較をするために、ウェブ開発用のユーティリティアプリケーションを作成した。これはウェブサイトのフォルダ内を調べて、どの HTML ファイルが目的のタグ ― タイトルやキーワード ― を含んでいるかを調べ、表示するものである。ユーザーは番号やタグの種類を指定することが出来る。

 REALbasic や Revolution は、このようなアプリケーションを作るのに向いている。このようなユーティリティを従来のプログラミングツールで作ろうとすると、全てのターゲットプラットホームの OS レベルの専門知識に加え、多大な開発努力と、多くのデバッグ時間が必要となる。 REALbasic や Revolution のような HLD ツールを使えば、経験豊かな開発者なら、数時間でプロトタイプを作り上げ、1日か2日で全て完成してしまうだろう。

 サンプルプロジェクトは商品レベルの作り込みがされていない。エラー処理、ドキュメントの整備、最適化、そして充分なテストのどれもが不十分である。これは2つの環境を充分に比較するためだけにデザインされたものである。

 サンプルアプリケーションとそのソースコードファイルは、http://www.runrev.com/revolution/info/compare/realbasic/example-apps.sit からダウンロード可能である。このファイルには Revolution のスタックファイルと Mac / PC / Linux / BSD 用にコンパイルされたアプリケーション、REALbasic のプロジェクトファイルと Mac / PC 用にコンパイルされたアプリケーションが含まれている。

仕様:
1. アプリケーションはルートフォルダを調べるよう設定出来る。
2. アプリケーションは結果のログファイルを作るよう設定出来る。
3. アプリケーションは処理したフォルダか内包するフォルダのリストを作るよう設定出来る。
4. アプリケーションは調べるタグを設定出来る。
5. アプリケーションは調べる拡張子を設定出来る。
6. アプリケーションはタグを調べるファイルの大きさの上限を設定出来る。
7. アプリケーションはプロセスをスタート、停止、再会、中止させることが出来る。
8. アプリケーションは全てのファイルを解析し、その結果を表示することも、ログファイルを作って保存することも出来る。

表示項目:
1. アプリケーションにはアバウトボックスとスプラッシュスクリーンがある。これらは別のウィンドウとする。
2. アプリケーションには起動画面とヘルプウィンドウがある。
3. アプリケーションには設定ウィンドウがある。
4. アプリケーションには作業ウィンドウがある。

表示の詳細
1. アバウトボックスとスプラッシュスクリーンには、ロゴ、制作者情報、バージョン情報を入れる。
2. 設定ウィンドウでは 1、2、3、4、5、6 の機能を設定することが出来る。
3. 作業ウィンドウではプロセスのコントロール(機能 7 )が出来、結果を表示(機能 8 )することが出来る。


Example Project Implementation in REALbasic - REALbasic によるサンプルプロジェクト作成
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/realbasicexample.html
 予想通り REALbasic はこの課題をこなし、最初の開発はスムーズだった。設定パネルのユーザーインターフェースは簡単に作ることが出来た。 REALbasic は Revolution のようなウィンドウ内マルチディスプレイをサポートしないので、タブパネルを使用した。開発中にコントロールをタブパネルオブジェクトにドラッグすると、そのコントロールはタブパネルの現在のタブに関連付けられる。これはうまく出来たが、REALbasic ではより複雑な設定をするのは難しいだろう。同じく標準のインターフェース部品であるリストボックスは、結果を表示するのに役立った。ファイル処理や結果の表示のためにスレッドオブジェクトを設定するのが一番大変であった。

 REALbasic の開発環境には厄介な部分や制限が存在する。ユーザーに停止や再開の機能を提供するためにはスレッドオブジェクトを設定しなければならない。アプリケーションのメインウィンドウをインタラクティブにするためにはスレッドの設定が必要だが、いちいちダイアログを使って多くの複雑なプロパティを入力しなければならない。作業開始のプッシュボタンにも、スレッドのプロパティを設定するコードが必要である。補助機能もあるが、余り役に立たない。

 さらに作業を複雑にしているのは、一度にひとつしかウィンドウを開けない開発環境の仕様である。大部分の処理をしているスレッドオブジェクトのコードは、大きく5つに別かれている。この5つのルーチンを行き来しなければならないために開発効率は落ちた。ふたつのルーチンを同時に見ることが出来ない仕様は、開発者のミスを誘う。ルーチン間で共有する変数(一種のグローバル変数)を作るためにはカスタムプロパティを作らねばならず、ここでまたダイアログを使った作業が必要になる。そして REALbasic はプロジェクト実行時にしか文法チェックを行わないため、書いたコードをその場でチェックすることが出来ない。一方でプロジェクト全体に対して行われるオブジェクト参照のチェックは、実行時のエラー削減に役立っている。

 変数の型は開発ペースの足を引っ張る。新しいテンポラリ変数 ― ループカウンタなど ― が必要になると、その変数を宣言するためにコードの先頭までスクロールして Dim コマンドを書き加え、また元の位置まで戻って来なければならない。このため長いルーチンを書くのが嫌になる!

 REALbasic の 3.2.1 では、タグの検索に必要な正規表現がサポートされていない。大きな問題ではないが、そのため Revolution で作ったサンプルアプリケーションほどの柔軟性を持たせることは出来なかった。(現在正規表現をサポートするバージョン 3.5 がリリースされており、それを使えば REALbasic版にも Revolution版 と同じ機能を持たせることが出来る。 REALbasic版にこの機能を加えるには、およそ2時間と、10行のコードが必要だろう)

 REALbasic は、異なるプラットホームのファイルパスを同等に扱うことは出来ない*16。これは folderItem オブジェクトを使って容易に回避することが出来るが、実行速度に影響が現れた。

 実際のファイル処理は、設定、ファイル処理、表示、ログファイルの作成を含み、処理の停止と再開を可能にするために、180行以上の BASIC リストが必要になった。また REALbasic は小さなプロジェクトを数秒でコンパイルするが、テストの度にコンパイル、実行、アプリケーションの設定が必要になる。サンプルアプリケーションをテストするには、プロジェクトの実行、スプラッシュスクリーンを消すためのクリック、設定パネルへの切り替え、処理フォルダの選択、ログファイルの選択、処理パネルへの切り替え、スタートボタンのクリックという7つの作業が必要になる。サンプルアプリケーションを完成するまでに、この7つの作業を50回も繰り返した。

 クイックリファレンスはマニュアルを不要にするだけの情報があり、開発には不可欠である。(しかしクイックリファレンスは REALbasic のオブジェクト指向のアプローチを解説してはくれない。断片から全体を把握するのは困難である。例えば PushButton コントロールの働きを理解するには、最初に Rect コントロールの働きについて読む必要があり、更にそれを理解するためには、Control の働きを知っておく必要がある)

 PC版はレイアウトとカラーに問題があり、機能的な問題もあった。開発環境上と Macintosh 用にコンパイルされたアプリケーションで正しく働いたコードが、Windows 用にコンパイルしたアプリケーションではディレクトリを正しく処理できなかった。コーディング/コンパイル/PCへの転送/実行/テスト、を Windows のデバッグツールなしで行う必要があり、このために数時間もの苦痛を味わった。多くの無駄な作業を繰り返すうち、アプリケーションは Windows 上でも動くようになった。

 開発を終えたあとに Windows版の問題がまた現れた。デバッガのない Windows 上でデバッグするためには、変数と実行状況をレポートするコードをアプリケーションに追加して、そのアプリケーションを Windows コンピュータに転送して実行する必要があった。

 1時間ほどかけてデバッグコードを追加して、行の区切り記号に問題があることが分かった。 Macintosh では行の終わりに return キャラクタがある。 Windows の行の終わりには、return キャラクタに続いて linefeed キャラクタがある。ファイル名の拡張子リストはテキストフィールドに入力する。 Windows では拡張子リストの区切りに carriage return と linefeed があるため、どのファイルの拡張子とも一致しなかった。なぜこの問題が最初から現れなかったのかは、分からないままである。

 ファイル処理が正しく行われるよう PC のコードに carriage return と linefeed を扱うコードを加えたが、アプリケーションはうまく働かない。これはその作業に問題があることが分かった。 PC アプリケーションの全ての場所で return と linefeed をコンビで使うようにしたために、以前のコードがうまく働かなくなっていた。問題は PC 上だけで起こっていたので、変更すべきところはすぐに見つけることが出来た。


Example Project Implementation in Revolution - Revolution によるサンプルプロジェクト作成
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/revolutionexample.html
 Revolution では、バージョン 1.0 のいくつかの不安定要素を除けば、サンプルアプリケーション実装はスムーズだった。(作業状態を保存したあと、終了した開発環境を再開すると、元の状態が再現される) グラフィック、テキスト、コントロールはみな良くできている。設定パネルのアニメーションは、このような簡単なコードで実現出来た:
if the state of me is "open" then
set the state of me to "closed"
move me to the closedLoc of me in .5 seconds
else
set the state of me to "open"
move me to the openLoc of me in .5 seconds
end if 
 設定パネル内のコードの "me" は、設定パネル自身を指す。実行中に state、closedLoc、openLoc といったカスタムプロパティを作っているが、特別な準備は不要であった ― REALbasic のカスタムプロパティは決まった場所でいちいちカスタムダイアログを使って設定する必要がある。設定パネルを開く時と閉じる時に "move" コマンドを使ったアニメーションを表示しているが、REALbasic にはこのようなアニメーション機能が無く、REALbasic版では単にタブパネルを切り替えているだけである。

 実際のファイル処理は、設定、ファイル処理、表示、ログファイルの作成を含み、処理の停止と再開を可能にするためには、英語のような Transcript コードを 80行以上書く必要があった。これは REALbasic の半分以下である。

 この作業を成功させた大きな要因は、以下のようなものである:

* アプリケーションのレイアウトデザインが容易
* 内蔵された正規表現
* 綺麗なコードの構造による、プロジェクトの見通しの良さ
* コード編集ライブラリが開発環境に含まれているために、プロジェクト実行中にもデバッグが可能

 クロスプラットホームに合わせてフォントとレイアウトを修正するのは容易だった。 Windows バージョンのアプリケーションでもコードは全く問題なく動いた。 Revolution は全てのプラットホームでファイルパスと行区切り記号をうまく扱う。これらは必要な時に自動的に変換される。

 全ての開発作業は Macintosh 上で行うことが出来た。皮肉なことに、Windows でデバッグする必要の無い Revolution に Windows版があり、Windows に問題のある REALbasic にはそれがない。 Windows版の REALbasic 開発環境があれば、サンプルアプリケーションはもっとずっと簡単に作ることが出来たであろう。(訳注:現在は Windows版 REALbasic もあります)

 多くのプラットホームに展開しているにも関わらず、各プラットホーム向けのアプリケーション作成は容易であった。ローカルコンピュータ内に必要なコンポーネントが無い場合は、自動的にそれがダウンロードされる。素晴らしい。


The Languages: Transcript vs. BASIC - 言語:Transcript VS BASIC
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/languages.html
 高水準言語を使う主なメリットは2種類ある。明解さとパワーである。

パワー
 より強力なプログラミング言語は、他のツールで行うよりも早く、そして短い行数で処理をこなしてしまう。

 コードの短さは高水準言語の特徴で、開発者はハードウェアや OS のことに悩まされることなく、機能の実現方法に集中することが出来る。これはクロスプラットホームでは特に重要である。

 プログラマはプログラミング言語を "世代" で呼ぶ*17。マシン語は CPU ネイティブの言語であり、これは第一世代である。アセンブラ言語はニモニック(訳注:マシン語を表す文字記号)をマシン語に置き換えるもので、第二世代と呼ぶ。簡単な文法を持つ BASIC は、Pascal や C などと同じ第三世代に分類される。 Perl、AppleScript、TCL などのスクリプティング言語はより抽象的*18(訳注:マシン語から離れているという意味)であるため、第四世代と呼ばれる。 Transcript はそれまでの言語に比べて理解しやすく非常に抽象的な、第四世代の言語である。

 コードの短さには、それ自体のメリットがある。コードが少なければ、読むのも、デバッグも、メンテナンスも容易だからである。

 REALbasic と Revolution は、どちらも C 言語の 1/10 から 1/100 という少ない行数で機能を実現することが出来る。ただしサンプルアプリケーションでは、REALbasic は Revolution の2倍( 182 対 81 )のコードを必要とした。 Revolution はコーディング面で非常に有利だった。

 行数に違いが出た一因は変数宣言であるが、Revolution のコマンドに REALbasic には無い便利なものが含まれていたことも大きい。例えば、ディレクトリの各アイテムがファイルなのかサブディレクトリなのかをチェックするディレクトリ処理ループは、REALbasic のコードではこのようになる:
'REALbasic のコード:
  tCount = tDir.count
  for i = 1 to tCount
    if (tDir.item(i).directory) then
      ' あとで使うためにディレクトリのリストを保持する
      tDirList = tDirList + "d " + tDir.item(i).absolutePath + cr
      '...
    else
      'ファイルカウントを増やす
      totalFileCount = totalFileCount + 1
      '...
    end if
  end for 
 Revolution にはサブディレクトリとファイルを読み出す組み込みのコマンドがある:
  -- Revolution のコード:
  put the files into tFiles
  --...
  put the directories into tDirs
  --... 
 加えて、tab や return などの定数が用意されていたことも、Revolution の開発作業を容易にした。

 サンプルアプリケーションは、多くのファイルを処理するのに時間がかかる。そのため、ユーザーが停止や中止を出来るようにしておく必要がある。 REALbasic では非同期処理にスレッドを使う。スレッドはアプリケーションのメインコードとは独立して実行される。スレッドを使って従来のループ構造を作ることも出来るが、開始、停止、再開を実現するためには、フラグとなるプロパティの設定(自動では処理されない)が必要である。

 Revolution ではスレッドオブジェクトの代わりに、ディレイ付きメッセージを使って非同期処理を行う。これは発想を変える必要がある。スレッドの各時間にひとつのファイルを処理するコードを実行し、更に処理を続けるなら自分自身にディレイ付きメッセージを送る:
  -- Revolution のコード:
if workQueue is not empty then 
send "doWork" to me in .0001 seconds
put the result into gWorkMessage
else
close file gLogFile
end if 
 ここでは "send" コマンドを使って、次の行を処理させるための独立したイベントを、キュー(訳注:一種のイベントバッファ)に入れている。非同期処理を止めたい時は "cancel gWorkMessage" を実行すれば良い。処理を再開するには "doWork" コマンドを実行するだけである。

 REALbasic はスレッドオブジェクトに代わるシンプルな手段も用意している。 timer オブジェクトである。 timer オブジェクトの使い方は Revolution のディレイ付きメッセージに似ている。残念なことに、timer オブジェクトは充分なスピードを持たない。 Revolution のディレイ付きメッセージは1秒間に数千回発行することが出来るが、REALbasic の timer オブジェクトは1秒間に60回以上発行出来ない*19。 timer を使って REALbasic のサンプルアプリケーションを作ったら、Revolution のサンプルアプリケーションよりも15倍も遅くなっただろう。

明快さ
 REALbasic版サンプルアプリケーションのコードに付けられたコメント文はそのまま Transcript のコードになっており、これが Revolution の Transcript の明快さを良く表している。以下のサンプルのコメント文は Transcript コードで書かれており、対応する REALbasic コードがそれに続いている:
'replace tab with "" in tMatch -- Transcript
tMatch = replaceAll(tMatch,tab,"") 'BASIC 

'put word 1 of tLine into tType -- Transcript
tSpacePos = inStr(tLine," ") 'BASIC
tType = left(tLine,(tSpacePos-1)) 'BASIC 

'delete word 1 of tLine -- Transcript
tLine = mid(tLine,(tSpacePos+1)) 'BASIC 
 コントロールの使用可/不可を切り替える時に、違う意味での明解さの差を感じた。 REALbasic のウィンドウはコントロールのリストを返すプロパティを持っており、それを使ってコントロールの使用可/不可を切り替えることが出来る。しかしコントロールオブジェクトのリストは enabled プロパティを持っていない。これを使って使用可/不可を切り替えるには、"キャスト" (訳注:型変換)が必要になる。このコードは実際にそれをやっている:
'REALbasic のコード:
Sub XableRectControls(w as window, onoff as boolean)
dim i, cc as integer
dim cref as control
cc = w.controlcount-1
for i = 0 to cc
cref = w.control(i)
if cref isa rectcontrol then
rectcontrol(cref).Enabled = onoff
end if
next
End Sub 
 Revolution では "キャスト" なしで、コントロールの使用可/不可を切り替えることが出来る。更にコントロールをグループにまとめることも出来る。これはグループ内のコントロールを一度に使用可能にするコードである:
  -- Revolution のコード:
enable group "optionalControlGroup" 
 そしてグループ内のコントロールを一度に使用不可にするコード:
  -- Revolution のコード:
disable group "optionalControlGroup" 
 この Transcript は BASIC ルーチン11行分の働きをしていることになる。


Conclusion

Feature Comparison: Head to Head
- 機能比較
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/features.html
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/features2.html
開発環境 REALbasic Revolution
開発環境の各国語対応
一度に開けるプロパティパレットの数 1*20 無制限
一度に開けるコードエディタの数 120 無制限
アンドゥ回数 無制限 1
一度に開けるプロジェクトの数 1 無制限
ランタイムの無料配布
開発中のコントロール座標を固定する
開発中にコントロールを隠す
開発中のプロジェクト全体の検索
コントロールのグループ化
開発環境の改造
スクリプタブルな開発環境
ウィンドウ内容の切り替え*21 タブパネル
コード入力の自動補完
開発プラグインの作成
対話型のコード実行
デバッグ時のコード編集
デバッグ時のプロパティ編集 制限あり
オンラインドキュメント
コンパイルエラーの表示 プロジェクト実行時のみ コンパイル直後*22


開発 REALbasic Revolution
Mac OS をターゲットに出来る
Windows をターゲットに出来る プロ版のみ
Mac OS X をターゲットに出来る 第3四半期(訳注:リリース済み)
Sparc/Linux/他 Unix ファミリーをターゲットに出来る
CGI などのインターフェースレスアプリケーション
ファイルパスの区切り記号自動変換
クロスプラットホームでのメニューバー自動変換
Windows MIDI サポート
バーチャルマシンプレイヤーの配布


高度な言語機能 REALbasic Revolution
自分自身の書き換え*23
実行時の型割り当て*24
実行時の引数解釈*25
実行時のコントロール作成*26
実行時のコード引用*27


高度な言語機能 REALbasic Revolution
自分自身の書き換え
実行時の型割り当て
実行時の引数解釈
実行時のコントロール作成
実行時のコード引用


機能 REALbasic Revolution
データベース接続 プロ版のみ 第3四半期(訳注:リリース済み)
内蔵データベース機能 プロ版のみ *28
AppleScriptの組み込み コンパイル済みのコードのみ 第3四半期(訳注:リリース済み)
QuickTImeメディアの取り込み
言語の分かり易さ
変数やオブジェクトのスコープの明快さ
引数の値渡しと参照渡し
Mac の XCMD サポート
Windows の DLL サポート
OS ルーチンへのアクセス XCMD と DLL を利用
スレッド
コントロールのグループ化
QuickTIme effect のサポート 第3四半期(訳注:リリース済み)
ウィンドウリサイズ時のコントロール再配置
Visual Basic フォームとメソッドのインポート
HyperCard プロジェクトのインポート
SuperCard プロジェクトのインポート
OS ネイティブのコントロール描画 第3四半期(訳注:リリース済み)
オフスクリーンを使ったグラフィック操作
コードライブラリ作成
正規表現内蔵 第3四半期(訳注:リリース済み)
インターネットソケット
連想配列
スプライトエンジン
グラフィックアニメーション機能内蔵
視覚効果のコントロールへの適用


イベントコントロール REALbasic Revolution
  (扱えるイベントが多いほどユーザーの操作にうまく対応出来る)
ボタンイベント 7 39
Canvas/Image イベント 10 34
QuickTIme ムービープレイヤーイベント 9 34
スクロールバーイベント 7 41
スライダーイベント 7 41
プログレスバーイベント 6 41
フィールドイベント 11 39
ウィンドウイベント 17 52


コントロール REALbasic Revolution
  (インターフェースの種類の多さを示す。どちらの環境もカスタムコントロールを作ることが出来るので、それは考慮すべき)
自動スクロールするフィールド
ベベルボタン
透明ボタン
Canvas/Paintオブジェクト
チェイシングアロー (訳注:アイコンでサポート)
チェックボックス
コンテクストメニュー
ディスクロージャートライアングル
編集可能フィールド
グラフィック描画ツール
グループボックス(ラジオボタン) ○*29
PICT 表示
GIF/JPEG/PNG *30
ライン
リストボックス
オブジェクト移動コントロール
オプションメニュー
プラカード
多角形
ポップアップアロー
ポップアップメニュー
プログレスバー
プルダウンメニュー
プッシュボタン
QuickTime ムービープレイヤー
ラジオボタン
四角
レクタングルボタン
正多角形
角丸四角
角丸ボタン
スクロールバー
セパレータ
シャドウボタン
スライダー
スプライト外観
リサイズボックス
編集不可テキスト
タブパネル


サンプルプロジェクト比較 REALbasic Revolution
メインルーチンのコード 182行 81行
開発時間 28時間 14時間
アプリケーションサイズ(Mac) 1.2MB 1.8MB
メモリ必要量(Mac) 4096KB 4096KB
アプリケーションサイズ(Windows) 884KB 1.3MB
アプリケーションサイズ(Linux) - 1.6MB
アプリケーションサイズ(BSD) - 1.5MB
実行時間
ローカルディレクトリ処理-Macintosh*31 156秒 117秒
ローカルディレクトリ処理-PC*32 34秒 58秒
ローカルディレクトリ処理-Linux*33 - 1020秒
リモートサーバディレクトリ処理*34 226秒 254秒
リモートサーバの巨大ディレクトリ処理*35 クラッシュ 38時間


The Future - 将来
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/future.html
 このサンプルアプリケーションを作ったあと、Real Software はバージョン 3.5 をリリースし、正規表現を含む多くの機能を強化したバージョン 4.0 のα版をリリースした。また Revolution 1.1 がベータリリースされている。この白書は、これらがリリースされる時に更新される予定である。(訳注:現在 REALbasic は 4.5 がリリースされ、5.0 がベータリリース中。また Revolution は 1.1.1 がリリースされ、2.0 がプレベータリリース中です。この記事はその後更新されていないようです)

 REAL Software の方向性は、リリースされたα版で見ることが出来る。 Microsoft Office との連携を強め、内部のスクリプトエンジンと 3D グラフィックスが強化されている。開発努力の多くはこれら新しい機能の強化と、従来の機能を磨くことに集中するだろう。

 Revolution の方向は明白である。 1.0 以後に必要とされる機能は見えている。 Mac OS X 互換、AppleScript のフルサポート、データベース接続が、第3四半期に予定されている。更にグラフィックス環境とインターネット接続の改良が予定されている。加えて、Revolution をベースとした、教育機関用のパッケージが準備中である。

 アップルが Mac OS X を改良して行くのに合わせて、どちらの環境も Mac OS X でうまく動くようになるだろう。

 文字通り何十もの環境に影響を与えてきた Apple の高水準開発環境である HyperCard は、今後のサポートの保証を得られず、ここ数年で勢いを失った。 Apple に Mac OS X 対応版を出す計画が無いことが拍車をかけた。現在も存在する巨大な HyperCard コミュニティの人々は、落ち着く先を探している。

 これらの開発者にとって、この2つの環境はどちらも敷居が高い。 REALbasic は HyperCard に似ているようでいて、全く異質な環境である。 Macintosh にフォーカスされてはいるが、そのコンセプトは Revolution に比べて、HyperCard から大きく離れている。もし Revolution が HyperCard からの多くの難民を取り込めるなら、そのユーザーコミュニティの力によって 1.0 の限界を打ち破ることが出来るだろう。


Conclusions and Recommendations - 結論とお奨め
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/conclusions.html
 高水準開発環境の分野は非常に刺激的である。 Visual Basic と Perl は法人にも趣味プログラマにも使える、本気でアプリケーションを作ることの出来る正統派 HLD であり、Java は "write once, deploy anywhere"(書くのは一度、配布はどこにでも)というコンセプトのクロスプラットホーム開発ツールである。他の多くの環境もみな興味深い。

 REALbasic と Revolution はどちらも様々な特長を持つが、そのアプローチは異なっている。 REALbasic は本来 Macintosh のツールである。これは Macintosh の開発者が Windows アプリケーションを作りたい時に使うものである。 Revolution は本質的にクロスプラットホームである。これは初めてのクロスプラットホーム高水準開発ツールであり、どのプラットホームでも同じように作業が出来る。 REALbasic はよりローレベルなアクセス手段を持っており、Revolution はより柔軟な開発環境を持っている。

 HLD ツールを決める時は、ツールの能力と、実際に必要とする機能をしっかり考えることが大切である。 HLD のアプローチが適しているプロジェクトは多いが、しかし HLD の提供する機能では不可能であったり、非実用的である場合もある。

 REALbasic や Revolution の見た目は貧弱な HLD 開発環境と大差無いが、しかし軽く考えてはいけない。どちらも良く考えられた機能を搭載し、多くのプロジェクトを完遂する能力を持っている。またどちらも HLD のインターフェースやプログラミング手法を維持したまま、従来の開発環境で作られたコードを利用して重い処理をこなすことも出来る。

 Macintosh アプリケーションを Macintosh 上で作ることを主眼に置くなら、学習の難しさを考慮しても、REALbasic が適しているように見える。低価格な Macintosh 専用のスタンダード版は、Macintosh 環境に適応しており、良い選択と言える。また REALbasic はデータベースを基本とするアプリケーションに特に強く、これを目的とする開発者にとって、充分に検討に値する。

 Linux や Unix ファミリー、Windows 上での開発を計画しているなら、Revolution を選択する必要がある。 REALbasic はこの点で検討対象外である。 REALbasic の開発環境は Macintosh 上でしか起動せず、Unix 用のアプリケーションを作ることは出来ない。

 他のプラットホームのアプリケーションを Macintosh 上で開発するなら、例えそれが Windows 版だとしても、Revolution の機能を慎重に検討する必要がある。クロスプラットホームで作業する場合、Windows 上でのデバッグ能力は重要な決め手となる。(訳注:現在は Windows版の REALbasic があります) またマックのみの開発でも、よりシンプルで、よりパワフルで、より分かり易い Revolution は強みを発揮する。

 この白書は2つの製品を客観的に比較するために書かれたものだが、実際の開発ではその個人の経験や好みが大きく影響する。どちらの製品にも試用版がある。どちらを使用すれば開発計画がうまく進むか、実際に手にとって2つのツールを評価するべきである。



About the Author - 著者について
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/author.html
 Geoff Canyon は高水準開発環境と付き合って10年になる。主に Inspired Logic, LLC, で、Rockwell International、E! Entertainment Television、AOL タイムワーナー、ディズニーなど向けに、ソリューションを開発してきた。彼は多くの環境を使ってきたが、メインは Macintoshで、HyperCard や SuperCard、MetaCard、FileMaker、4D、FaceSpan、Perl、Visual Basic、それにもちろん Revolution と REALbasic も使っている。

 Geoff の BASIC 体験は70年代後半からである。 REALbasic はバージョン1.0から長年使い続けている。これは、3.x を使った、彼の初めてのプロジェクトになった。

 Geoff の Revolution 体験は、Revolution の祖先 ― HyperCard と MetaCard ― を含めて5年になる。これは、Revolution 1.0 を使った、彼の初めてのプロジェクトになった。

 Geoff は Inspired Logic, LLC, の会長であり、Home Box Office のプロジェクトリーダーである。


References - 脚注
http://www.runrev.com/revolution/info/compare/realbasic/rb-vs-rev/references.html
1. REALbasic の機能一覧は、REALbasic のウェブサイト http://www.realbasic.com、或いは REALbasic 自身から。

2. Revolution の機能一覧は、REALbasic のウェブサイト http://www.runrev.com、或いは Revolution 自身から。

3. C や TCL と比較して 1/60 になったとする根拠は http://dev.scriptics.com/doc/scripting.html にある。

4. http://www.webopedia.com/TERM/f/fourth_generation_language.html

5. http://webopedia.internet.com/TERM/R/Rapid_Application_Development.html

6. HyperCard ホームページ http://www.apple.com/hypercard/

7. Perl の歴史 http://www.perl.org/press/history.html

8. Visual Basic の歴史 http://msdn.microsoft.com/vbasic/bday/default.asp

9. Sun の Java ホームページ http://www.sun.com/java/

10. http://www.salon.com/tech/col/garf/2001/01/08/bad_java/

11. サンプルアプリケーションの開発は、この種の問題を浮き彫りにする。

12. オブジェクト指向の開発環境に興味があり、新しい環境に慣れるための努力を惜しまないなら、もっと良い言語や環境が存在する。これらは REALbasic や Revolution のようなグラフィカルインターフェースを持ち、ドットを使った文法、厳密な型、カプセル化、継承など、REALbasic と良く似た文法と構造を持つ。

13. REALbasic のデベロッパーガイドはこのように述べている:
もし今までに従来のプログラミング言語を使ったことがあるなら、プログラミングステップが3つのプロセスから成ることを知っているだろう:コーディング、コンパイル、アプリケーションのテスト。 REALbasic を使ったソフトウェアアプリケーション開発は、それらと大きく違うことはない。一番異なるのは、これらのプロセスの進め方である。 REALbasic はコンパイルが速く、小さな修正を施した後にすぐそれを実行して、修正がうまく行ったかを確認することが出来る。

14. リリースノートによると、バージョン 3.1 から 3.2 に至るまでに、REALbasic は4ヶ月で 14回のベータリリースを行っている。

15. 例えばフィールドがフォーカスを失った時に、 Revolution は、フィールド内容が変わっている場合と、変更されなかった場合で別のイベントを送ってくる。 REALbasic はイベントを1種類しか持たず、フィールドの内容が変化したかどうかは開発者が調べなければならない。

16. REALbasic はそれぞれのプラットホームで、そのプラットホームのデリミタを使う。 Revolution は全てのプラットホームでスラッシュを用い、適切に変換することが出来る。

17. http://www.webopedia.com/TERM/f/fourth_generation_language.html

18. 詳細は http://home.pacbell.net/ouster/scripting.html を参照のこと。

19. timer はミリセカンド単位でイベントを起こす。 delay はミリセカンドやゼロにセットすることが出来、理論上は1秒間に 1000回以上、あるいは可能な限りのイベントを起こすことが出来る。ただしこれによって実際に timer よりも多くの処理をこなせるとは限らない。実際の上限は Mac OS システムでは1秒間に 60、Windows システムでは1秒間に 100 になる。 timer 1回のイベントで2つのファイルを処理することが出来るが、これを可能にするのは複雑であり、また遅いサーバーを使った場合はユーザーへのレスポンスが遅れる。 Revolution のディレイ付き send コマンドはシステムの速度にのみ制限を受ける。

20. アプリケーションウインドウやオブジェクト1つに付き1つのコードウインドウ。つまりサンプルアプリケーションでは、メインウィンドウ、スプラッシュスクリーン、スレッドクラス、の3つのコードウィンドウを開くことが出来る。残念なことに、多くの場合、関連するコードはアプリケーションの特定のパートに集中する。スレッドクラスにある2つのメソッドを同時に表示するような使い方は出来ない。

21. REALbasic の各ウィンドウは決まった外観を持ち、表示を切り替える手段は開発者に提供されていない。2種類の表示が必要な時は、必要なものを表示し不要なものを隠すよう、開発者が手動でプログラミングする必要がある。タブパネルを使うという選択肢もある。これは単純な切り替えには有用である。 Revolution では、開発者が好きなだけ異なる外観を用意することが出来る。実行時にたった一行のコードで外観を切り替えることが出来、その際に視覚効果を付けることも出来る。

22. REALbasic はプロジェクト実行時にのみコードのエラーをチェックする。 Revolution はコードウィンドウを閉じる時や、開いているコードウィンドウで Apply ボタンを押した時にエラーチェックをする。コンパイルエラーを見つけやすく、修正が容易である。

23. Revolution のコードは、プログラム上で作って実行することが出来る。またプロジェクト内のコードを実行時に再定義することも出来る。

24. Revolution はデータを変数に入れる時に自動的に型を割り当てるので、変数の型宣言や引数の記述などで開発者に負担をかけることがない。

25. Revolution では、手続きや関数に定義された引数を全て渡す必要はない。また定義されている引数よりも多くの引数を渡すことも出来る。

26. Revolution では、実行時に各コントロールを作成(または削除)することが出来る。作成時には既存のコントロールを複製することも、ゼロから作ることも出来る。各コントロールのコードは、実行時に割り当てることも出来る。

27. Revolution で作ったアプリケーションは、Revolution で作った他のプロジェクトや、外部のコードの断片を、実行時に統合することが出来る。

28. Revolution の命令セットを使えば、制限(およそ 5000 レコード以下)付きながら、簡単なデータベースを組むことが出来る。

29. Revolution ではラジオボタンをグループ化して、ひとつのグループオブジェクトとして扱うことが出来る。ラジオボタンはひとまとまりのインターフェースとして扱われることが多いので、グループを簡単に移動することが出来るのは柔軟性を高めている。

30. 大抵のことは canvas コントロールで済ますことが出来る。しかしこれは理想的とは言えない。

31. テストは Macintosh PowerBook G3 400 で行った。ファイルはローカルにある。どちらのアプリケーションもデフォルト設定のままである。ディレクトリには 5,740 個のファイルがあり、このうち 1,499 個のファイルがデフォルトの拡張子と合致して処理された。

32. テストは Windows 2000 の PC で行った。ファイルはローカルにある。どちらのアプリケーションもデフォルト設定のままである。ディレクトリには 5,040 個のファイルがあり、このうち 1,623 個のファイルがデフォルトの拡張子と合致して処理された。

33. テストは 233 MHz のプロセッサと 64MB の RAM が乗っている Linux Redhat 6.2 で行った。ファイルはローカルにある。どちらのアプリケーションもデフォルト設定のままである。ディレクトリには 12475 個のファイルがあり、このうち 5778 個のファイルがデフォルトの拡張子と合致して処理された。

34. テストは Windows 2000 の PC で行われ、ファイルはリモートサーバ上にある。どちらのアプリケーションもデフォルト設定のままである。ディレクトリには 8720 個のファイルがあり、このうち 2880 個のファイルがデフォルトの拡張子と合致して処理された。

35. テストは Windows 2000 の PC で行われ、ファイルは非常に遅いリモートサーバ上にある。どちらのアプリケーションもデフォルト設定のままだが、ファイル読み込みを 3,000 バイトに制限した。 REALbasic は 36,234 ファイルを調べ、6,078 ファイルを処理したところで nil object exception で停止した。クラッシュの詳細なレポートは得られなかった。サーバからの反応は非常に遅く、これが Revolution の実行時間の遅さと、恐らくは REALbasic のクラッシュを引き起こした。クラッシュまでの実行速度はほとんど同じだった。


邦訳/文責:UDI
2003.03.07
2003.03.27

inserted by FC2 system