John Carmack wrote recently in his blog about developing for mobile devices, in his case a mobile phone with Java support.

It turns out that I’m a lot less fond of Java for resource-constrained work. I remember all the little gripes I had with the Java language, like no unsigned bytes, and the consequences of strong typing, like no memset, and the inability to read resources into anything but a char array, but the frustrating issues are details down close to the hardware.

The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything.

I spent a fair amount of time looking at java byte code disassembly while optimizing my little rendering engine. This is interesting fun like any other optimization problem, but it alternates with a bleak knowledge that even the most inspired java code is going to be a fraction the performance of pedestrian native C code.

May be you should consider using a Windows Mobile device, for a start on average they're much faster then other more common mobile phones and going that route you have the best of both worlds, you can compile natively for ARM (which most WM devices are), or you could use something like the .NET Compact Framework - sure it won't be quite as fast as native code but you'll get to cut out a lot of the standard boiler plate rubbish and get straight into building the application, it also runs much faster then Java does, plus you can use a language you're familiar with such as C++ (managed) or C# rather then Java.

Oh and a word on the blog JC - have comments and trackbacks, its not really a blog IMO if its disconnected from the blogosphere.