Waba is a programming platform for small devices.
Waba defines a language, a virtual machine, a class file format and a set of
Because of the way Waba was designed, developers can use Java development tools
to develop Waba programs. However, Waba is not a derivative of Java and
connection to Sun Microsystems, the owner of the Java brand and related
The syntax of the Waba programming language is a strict
subset of the syntax of the Java language.
This allows developers who are familiar with Java to quickly start programming
The Waba class file and bytecode format are strict subsets of the class file and
bytecode format supported by Java. This allows developers to use Java development
tools to write programs for the Waba platform as long as they only use the
subset of functionality supported by Waba.
The Waba language, virtual machine and class file format were designed
to be optimal for small devices.
Features that would use substantial amounts of memory or that were deemed
unnecessary for small devices were omitted from the design of the Waba language
Waba has a set of foundation classes designed to be as small as possible while
still containing the functionality needed to write fully featured programs for
Waba comes with a set of "bridge" classes that allow Waba
programs to run
anywhere Java is available. Waba programs can run as Java applets and
applications. Using the bridge classes, a Waba program can run under Windows,
UNIX and could appear on a web page as a Java applet.
With a native Waba virtual machine, the same program could run on a small device, such as the PalmPilot.
Why write programs in Waba?
Waba was designed for small, usually mobile, devices. Waba virtual machines are available that are under 64K in size (including foundation classes) and that run programs in less than 10K of memory.
Waba allows developers to quickly develop bullet-proof programs on almost any platform with development tools that are cheap (free in many cases), familiar and easy to use. The Waba language is object-oriented and includes language features such as bounds checking and garbage collection that speed development time and make for more robust applications.
The Waba foundation classes were designed specifically to encapsulate the functionality required to build applications for small devices.
Small devices normally only contain memory and no outside storage device, so if a program corrupts memory, the whole machine may need to be reset. Waba safeguards memory access to prevent these types of failures.
Since Waba uses garbage collection, memory leaks are extremely rare compared with programs written in other languages.
With Waba, you can write one program that can run on a PalmPilot device, Windows CE device or any machine that supports Java (either the JDK 1.02, 1.1, 1.2 or 2.0).
The alternative to programming in Waba is to program in a language specific to a given small device. Usually this means writing code in C to a native, non-portable API. These APIs tend to be large, difficult to program and small programming mistakes can mean catastrophic application failure.