wabasoft product overview  
Fun and Games
More VMs
Dev Tools
How-to Papers
Contact Us
Home Page
What is Waba?

Waba is a programming platform for small devices. Waba defines a language, a virtual machine, a class file format and a set of foundation classes.

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 has no connection to Sun Microsystems, the owner of the Java brand and related trademarks.

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 in Waba.

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.

Small Devices 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 and platform.

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 small devices.

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?

  • Mobility
    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.

  • Functionality
    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.

  • Reliability
    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.

  • Portability
    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.

Copyright (c) 1999 - 2019 Wabasoft. Waba, WabaVM and WabaSDK are trademarks of Wabasoft Inc.