Wabaは小型デバイス向けのプログラミング・プラットフォームです。 Wabaは言語、仮想マシン、クラスファイル・フォーマット、基本クラス (foundation class)の集合を定義します。
Wabaは開発者がWabaプログラムの開発にJava開発ツールを使えるように設計されています。 しかしWabaはJavaの派生物ではありませんし、Javaブランドと関連商標を 保有するSun Microsystems社とも関係がありません。
Wabaプログラミング言語の文法はJava言語の文法の完全なサブセットです。 これはJavaに親しんでいる開発者がWabaでプログラミングをすぐに始められるようにします。
Wabaのクラスファイルとバイトコード・フォーマットは、 Javaでサポートされたクラスファイルとバイトコード・フォーマットの完全なサブセットです。 これは開発者がWabaでサポートされた機能のサブセットを使う限り、 Wabaプラットフォームでプログラムを書くためにJava開発ツールを 使うことを可能にします。
Wabaの言語と仮想マシン、クラスファイル・フォーマットは小型デバイスに対して最適に
なるように設計されました。小型デバイスに対して不必要な機能やメモリを大量に使う機能は
Wabaの言語とプラットフォームの設計から省かれました。
Wabaはできる限り小さくなるように設計されていながら、小型デバイス 向けプログラムを書くのに必要十分な機能を含んだ基本クラスの集合があります。
またWabaにはどのJavaでもWabaプログラムを動かすことを可能にする"ブリッジ(bridge)" クラスがあります。WabaプログラムはJavaアプレットやアプリケーションとして 動かすことができます。ブリッジクラスを使うことによって、Wabaプログラムは WindowsやUNIX上で動かすことができ、Javaアプレットとしてwebページ上で 動かすこともできます。
ネイティブなWaba仮想マシンを使って、同じプログラムをPalmPilotなどの小型デバイスで 動かすことができます。
Wabaでプログラムする理由
Waba基本クラスは小型デバイス向けアプリケーションを構築するのに必要な 機能性をカプセル化するように設計されています。
Wabaはガベージコレクションを使うので、メモリリーク(memory leak)は 他の言語で書かれたプログラムと比べて非常に少ないです。
Wabaプログラミングの代替案は与えられた小型デバイスに特有の言語で プログラムすることです。これは通常ネイティブで移植性の無いAPIのために Cでコードを書くことを意味します。これらのAPIはプログラムのために大きく難しく なる傾向があり、小さなプログラミング誤りは破滅的なアプリケーションの 障害をもたらします。