# SuperWaba

SuperWaba is a discontinued Java-like virtual machine (VM) that targets portable devices. Software developers use application programming interfaces (APIs), accessed through associated libraries (packaged as Jars) and small tools (together composing a software development kit), to create applications that can run within the VM on supported platforms.

## Architecture

The SuperWaba VM and API implement a subset of the Java programming language, which allows it to run under a standard Java VM or as a Java applet. This is in contrast to the Java Micro Edition which was designed under a different Java specification than that used by the Java Standard Edition. Classes compiled for the SuperWaba VM must be compiled for Java 2, Standard Edition 1.2 compatibility.
Note that the SuperWaba VM does not conform to a particular specification. However, the SuperWaba API allows recompiling an application's classes to the Java Standard Edition. When an application is retargeted in this way, all versions of the Java Standard Edition are supported.
Despite its likeness to the Java 2 standard edition specification, SuperWaba is appropriately constrained for hardware limitations typically encountered on portable devices. Especially, the SuperWaba VM has been optimized for use on devices with small screens. Compiled code runs at 1/3 to 1/2 the speed of a pure C application on a Palm platform, and on a Windows API (Win32) platform is approximately three to four times faster than a JIT-compiled Java due partly to its integer-only implementation. Additional mathematics libraries for non-integer arithmetic are provided with the SDK.
The SuperWaba VM and API are both extensible. They are published under the GPL free software license. Also, licensees may buy an LGPL version, that lets them link it with proprietary software. Applications and libraries written for SuperWaba may be sold, but most appear to be available as free software from the main website.

## History

SuperWaba evolved from the Waba project which was an independent forerunner of Java Platform, Micro Edition (Java ME). SuperWaba had initial support only for Palm OS; starting in version 3, it added support for Windows CE, as the prior Waba VM.
Since the 5.0 release, SuperWaba has used the SDL library for driving the display, which increases its portability to many other platforms.
The support for SuperWaba has ceased and its successor, TotalCross, is the primary mobile SDK. Totalcross Beta 4 was released on January 12, 2009. TotalCross, a superior solution to SuperWaba, offers greater platform stability, leaner compilation of Java code, and added ability in a smaller footprint.

## Integration and support

SuperWaba applications can be developed under any JDK supporting Java 1.2 or greater, and the libraries and tools integrate with development environments such as Eclipse, JBuilder, etc. The VM runs on the following platforms:
* Windows CE 2.11 and above
* Pocket PC: Axim, iPAQ, others
* Palm OS 2.0 and above
* Palm OS 5 optimized for ARM CPUs
* Symbian series 60 and UIQ devices
* Linux: Debian, Red Hat, others
* Windows 98, XP, Me, 2000
* Browser-based Java applets
SuperWaba libraries offer a variety of abilities, from barcode scanners to complex mathematics. The SuperWaba website features a wiki for developers and users to contribute to the project.