I decided to try some Palm OS programming. Although I have an entire book on the subject, the inconvenience of setting up a development environment has stymied me in the past. I’m not fan of Java—I despise its unecessary verboseness, its incomplete object orientation, and the ungainliness of Java applications on almost any platform—but SuperWaba, a miniature Java-compatible virtual machine aimed at handheld devices, seemed like it would do the trick.
Installing the SDK was simply a matter of copying two files,
adding them to the Java classpath. It’s important to note that you
must add the
jar files themselves to the classpath;
adding their parent directory won’t work.
Unfortunately, there are a couple of extra problems to address before you can actually compile and run even a simple Hello World application.
First, the version of Java used as standard in OS
X—1.4.2—doesn’t work with Waba. But don’t panic! Version 1.3 is
still available; you just have to find it. You can just type in the
java: they are found in
But that’s rather too much effort. Instead, you can make a couple
of symlinks. I have a
~/bin directory in my path; you
can make the symlinks in
/usr/local/bin if you prefer.
I’ve elided some of the extravagantly long path, but you’ll have to
type in the whole thing.
% ln -s (path)/1.3.1/Commands/java ~/bin/java13 % ln -s (path)/1.3.1/Commands/javac ~/bin/javac13
You can now use
when compiling and executing Waba code.
The second wrinkle is that, even with the correct version, you still need to compile to the correct target: 1.1. The correct command line for compiling a Waba program is now:
% javac13 -target 1.1 Foo.java
Still a bit of a hassle, right? I thought, why not create a
wabac to compile Waba programs? Here’s
chmod it executable):
#!/bin/sh javac13 -target 1.1 $*
To run the compiled program on the local machine for testing,
#!/bin/sh java13 waba.applet.Applet $*
Finally, I made two more scripts in the same vein to give
After having done all that, I was able to compile a SuperWaba Hello World program, run it on OS X, install it to my Palm (Tungsten T3) and run it there.
For some reason, my Palm wouldn’t run the same program ever again. Oh well, at least the development environment works.