[CoMoDev] SuperWaba

  • From: David Beers <david@xxxxxxxxxxxxx>
  • To: <comodev@xxxxxxxxxxxxx>
  • Date: Sun, 13 Jun 2004 15:46:24 -0600

It happens to me about twice a year.  I get obsessed with finding a good way to 
write applications that will run (which minimal or no changes) on both Palms 
and PocketPCs. Usually there is a few weeks of casting about and then, with a 
feeling of discouragement that I tell myself is realism, I decide that there 
are a lot of intriguing contenders, but nothing that satisfies what I think I 
want.  What I am looking for is roughly the following:

*  Produces apps with the relatively rich UI people have come to expect on 
Palms and PocketPCs
*  Doesn't run in some pokey runtime interpreter
*  Allows me to use a nice productive IDE
*  Good support and a good-sized user base
*  Doesn't cost an arm and a leg

Lately, I'd add an additional criterion that has been weighing more heavily on 
my mind: lets me program in a real OOP language.  I have to finally say that 
even though C has become like a comfortable old shoe for me, I'm getting tired 
of having to hammer out hundreds of lines of code to do the simplest things.  I 
like C# and think the .NET Compact Framework is great, but don't see a .NET VM 
coming out for the Palm OS any time before hell freezes over.  Yeah, there is 
AppForge, which lets you code in VB.NET and then run you code in VMs for Palms, 
ARM-based PocketPCs, and some Symbian devices:  

http://www.ftponline.com/vsm/2004_08/magazine/departments/firstlooks/

But from what I understand there is the "pokey runtime" problem, and most 
definitely the "arm and a leg" problem.

Now I'm looking seriously at SuperWaba, a set of Java-compatible class 
libraries and VMs that keeps looking better the closer I look, despite the 
silly name.  I mentioned this earlier, but just wanted to expand on some of the 
stuff I've learned that impresses me:

*  While it's not compliant with J2ME or any other Sun standard for Java, you 
can compile using any Java development environment you want.  The language is 
pure Java with all of Java's good OOP features, even if the libraries are not.
*  The non-compliance is looking like maybe a good thing: many of the apparent 
limitations of J2ME are not there with SuperWaba.  See this: 
http://www.superwaba.com.br/en/swxj2me.asp
*  Performance is a lot better than with J2ME: "being integer-only and 
essentially single-threaded lets this VM run four times faster than Sun?s 
JIT-compiled code."  The VM is supposedly a lot faster than AppForge's, too.
*  If you're doing something that needs to run faster than interpreted code 
allows consider this:
        1.  SuperWaba code can be compiled to native executables--at least on 
the Palm side--using a utility called SWJump.  Want to support old, slow 68k 
Palms with the snappy performance people expect? Just eliminate the runtime!  
(Still needs a runtime for PPC, but you've got more horsepower there anyway).
        2.  There is a version of the VM about to come out that is written in 
native ARM code--supposed to be 4-30x faster in OS 5 Palms.  Also a new VM for 
Windows CE that's supposed to be 5-15x faster for speed-hungry operations like 
media playback.
        3.  You can call libraries that are written in fast native C/C++ code 
for processor-intensive operations.
*  I see a *lot* of libraries that do things that are hard to do using the Palm 
OS API:  HTML rendering, GIF/JPG/PNG display, XML parsing, relational 
databases, SQL, etc.  
*  The UI looks like PocketPC on a PocketPC, Palm on a Palm.
*  Lot's of sample code and documentation on how to do specific, practical 
things.  I prefer looking at sample code than docs in many cases.
*  SuperWaba is open source.  The developers seem to be able to make a pretty 
good business out of it, though (selling tutorials, samples, consulting 
services) because great new features seem to be rolling out on a rapid timeline.
*  There's a plug-in to the Eclipse IDE for writing SuperWaba apps there.  
Since that's the same IDE that PalmSource has chosen for the new Palm OS 
Developer Suite it would be nice to do C API and Java/SuperWaba development 
from a single familiar IDE.

Here are a couple of good reviews:

http://www.oreillynet.com/cs/user/view/cs_msg/38318

http://www.computerworld.co.nz/cw.nsf/UNID/BE3803B107AF69F8CC256DE80008FB3A?OpenDocument&More=Tools

I may finally be getting pushed into the Java camp.

David
=========================
David Beers
Pikesoft Mobile Computing
www.pikesoft.com


Other related posts: