SuperWaba

Last updated
SuperWaba
Written in Java subset
Operating system Cross-platform
Type Virtual machine
Website www.superwaba.com.br

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.

Contents

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 [1] 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, [2] 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:

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.

See also

Related Research Articles

Java (programming language) Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages. As of 2019, Java was one of the most popular programming languages in use according to GitHub, particularly for client–server web applications, with a reported 9 million developers.

Java virtual machine Virtual machine

A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

Palm OS Mobile operating system

Palm OS is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996. Palm OS was designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management. Later versions of the OS have been extended to support smartphones. Several other licensees have manufactured devices powered by Palm OS.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

Java Card refers to a software technology that allows Java-based applications (applets) to be run securely on smart cards and similar small memory footprint devices. Java Card is the tiniest of Java platforms targeted for embedded devices. Java Card gives the user the ability to program the devices and make them application specific. It is widely used in ATM cards. The first Java Card was introduced in 1996 by Schlumberger's card division which later merged with Gemplus to form Gemalto. Java Card products are based on the Java Card Platform specifications developed by Sun Microsystems. Many Java card products also rely on the GlobalPlatform specifications for the secure management of applications on the card.

The Access Linux Platform (ALP), is a discontinued open-source software based operating system, once referred to as a "next-generation version of the Palm OS," for mobile devices developed and marketed by Access Co., of Tokyo, Japan. The platform included execution environments for Java, classic Palm OS, and GTK+-based native Linux applications. ALP was demonstrated in devices at a variety of conferences, including 3GSM, LinuxWorld, GUADEC, and Open Source in Mobile.

Java (software platform) Set of computer software and specifications

Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

OPC Unified Architecture is a machine to machine communication protocol for industrial automation developed by the OPC Foundation. Distinguishing characteristics are:

Comparison of the Java and .NET platforms.

JavaFX Java software platform for GUI

JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS, as well as mobile devices running iOS and Android.

FlashDevelop Text editor

FlashDevelop is an integrated development environment (IDE) for development of Adobe Flash websites, web applications, desktop applications and video games. The resulting applications run in Adobe Flash Player or Adobe AIR, on Microsoft Windows, Mac OS X, Android or iOS. The primary purpose of FlashDevelop is enabling developers to edit, compile, debug and publish a Flash ActionScript project. It supports ActionScript 2.0, ActionScript 3.0, Haxe and other upcoming languages. It has code completion, syntax highlighting, snippets and other features similar to Microsoft Visual Studio.

Titanium SDK is an open-source framework that allows the creation of native mobile apps on platforms including iOS, Android and Windows UWP from a single JavaScript codebase, developed by Appcelerator.

The Java Development Kit (JDK) is a distribution of Java Technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle steward. It provides software for working with Java applications. Examples of included software are the virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for a Java programmer.

Symbian Discontinued mobile operating system

Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones. Symbian was originally developed as a proprietary software OS for PDAs in 1998 by the Symbian Ltd. consortium. Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARM processors, although an unreleased x86 port existed. Symbian was used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of 2010, at a time when smartphones were in limited use, when it was overtaken by iOS and Android. It was notably less popular in North America.

Dart is a programming language designed for client development, such as for the web and mobile apps. It is developed by Google and can also be used to build server and desktop applications.

Mono (software) Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

References

  1. Waba
  2. "Software Everywhere » Interview with SuperWaba developer Guilherme C. Hazan". 2012-02-07. Archived from the original on 2012-02-07. Retrieved 2021-10-10.