Ewe is comprised of a small footprint, highly optimized Java byte-code interpreter (a Virtual Machine) and a powerful but compact Java class library.
Not only are all the Ewe VM implementations available for download for free, but so is the Ewe SDK along with the Ewe Application Development guide. You can read the first chapter of this, which is an introduction to the SDK.
The Ewe SDK not only allows you to write 100% portable Ewe applications, but also allows you to re-package your completed applications into a number of forms. This includes:
ü Native Windows and WinCE EXE files (which can include their own icons).
ü Java 1.2 compatible JAR files for execution on Java VMs.
ü Java 1.2 compatible Applets.
All without having to change a single line of code. How is this possible? Using the Jewel program builder provided along with Ewe. You can read about it here an extract from the Ewe Application Development guide which is available in the downloads section.
So Ewe is just another Java VM implementation?
No, the Ewe VM is not a Java VM since it does not implement a very small number of Java features, nor does it use any of the "standard" Java libraries and API. Ewe has its own set of utility, network, zip, gui and other packages.
If it is not a true Java VM, how can Ewe applications run on a true Java VM?
Ewe introduces nothing new into the Java language, it simply makes you refrain from using a small number of Java features. Your application will therefore still be a true Java application, but it will be targeted for the Ewe libraries instead of the Java libraries.
After you write your Ewe application you can package it as a Java JAR application which includes within it the Ewe library for Java. You can package it to execute on a Java 1.2+ VM. The resulting application will run exactly the same as on a Ewe VM. This gives it maximum portability.
So why should I program for Ewe instead of for a true Java VM?
For maximum performance and portability. Look at it this way – if you program in Java you have a number of choices.
If you target a Java 1.2 VM with SWING it will work and look fine on the desktop, but you can forget about it running on a mobile device - unless it has had its OS removed and replaced with a special Java 2 compliant OS. This is possible for PocketPC devices, but who is going to ask their customers to replace the entire device OS?
If you target PersonalJava with AWT it will work on the desktop and on a few mobile devices but (i) very few mobile devices come with PersonalJava pre-installed, (ii) there does not appear to be free PersonalJava implementations for the other devices and (iii) your application will not look good on the desktop due to AWT's very primitive look and capabilities. Put simply, if you target PersonalJava you will still need to write a Java 1.2 version for the desktop and you will be very limited as to the mobile devices you can target.
If you target the Ewe VM your application will work on the desktop and will work on more mobile devices than a PersonalJava application. Furthermore, your application will look good on the desktop and the mobile device since the GUI library in Ewe is far superior to AWT, and very close to SWING.
On top of which the Ewe VM simply works better than PersonalJava on mobile devices. You can get a full comparison of the Ewe VM vs. PersonalJava right here.
But will my existing development tools be of any use?
Absolutely. Programming for Ewe is the same as programming for Java except for the different class library. Any Java compiler will compile Ewe applications. Then you can use the Ewe VM or a Java VM to test and debug them.
Exactly what features are available in Ewe?
Quite a lot, go here for details on them.
Can I program for mobile phones using Ewe?
Currently only Microsoft SmartPhones can run Ewe. Phones which use other WindowsCE or Linux platforms should also be able to run the Ewe VM, but phones which use Symbian or proprietary OSes will not.
What about licensing?
Ewe is royalty free. You can distribute the VM with your application. In fact you can create an auto-installer for your application that will install the VM (if necessary) and your application at the same time.
For technical “under the hood” details, including information on portability issues, go to this page.
Need to get a VM to run Ewe programs on your system? Then go to the Downloads section. Interested in writing programs for Ewe? Head to the Developer’s Page section.