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.
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 constrained for hardware limitations typically encountered on portable devices. The SuperWaba VM was 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. Licensees could also buy an LGPL version that allowed linking with proprietary software.
History
SuperWaba evolved from the Waba project, which was an independent forerunner of Java Platform, Micro Edition (Java ME). SuperWaba initially supported only Palm OS; starting in version 3, it added support for Windows CE, as the prior Waba VM had.
Since the 5.0 release, SuperWaba used the SDL library for driving the display, which increased its portability to many other platforms.
Support for SuperWaba has ceased, and its successor, TotalCross, became the primary mobile SDK. TotalCross Beta 4 was released on January 12, 2009. TotalCross offered greater platform stability, leaner compilation of Java code, and additional capabilities in a smaller footprint.
Supported Platforms
SuperWaba applications could be developed under any JDK supporting Java 1.2 or greater, and the libraries and tools integrated with development environments such as Eclipse and JBuilder. The VM ran on the following platforms:
- Windows CE 2.11 and above
- Pocket PC (e.g., Axim, iPAQ)
- Palm OS 2.0 and above
- Palm OS 5 (optimized for ARM CPUs)
- Symbian Series 60 and UIQ devices
- Linux (Debian, Red Hat, and others)
- Windows 98, XP, Me, 2000
- Browser-based Java applets
Successor
SuperWaba was later succeeded by TotalCross, a modern, lightweight mobile SDK offering improved performance and broader cross-platform support. The Brazilian Institute of Geography and Statistics (IBGE) issued an official tender in 2009 for the migration of the Censo 2010 mobile application from SuperWaba to TotalCross, which included licensing of 260,000 virtual machines.