[link|http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates|Cell phone adventures]
He is quite negative.
I have started working on J2ME and think things are not nearly as bad as he says. He claims that Java is really slow on cell phones. The fact is that things are getting better. Within the past year just about all the VM implementations on the phones have started to include a JIT which helps performance a lot. There is a 3D Graphics API which basically is a thin wrapper over native code, Java is not going to cost you much when you use it the overwhelming majority of the time will be spent in the actual native rendering code. Until now most cell phone chips didn't support floating point in hardware, meaning that all the calculations are done in software, when you do 3D graphics that is painful. Most phones didn't have hardware video accelerators again painful for 3D graphics. This is also starting to change. I have seen some very cool 3D games on high end Japanese phones that perform fine. A lot of it is a question of hardware.
These are the minimum requirements for a MIDP device:
256 kilobytes of non-volatile memory for the MIDP implementation, beyond what\ufffds required for CLDC.
8 kilobytes of non-volatile memory for application-created persistent data
128 kilobytes of volatile memory for the Java runtime (e.g., the Java heap)
As you can see that the Java VM implementation is given 256K, the memory allocated to a Java app is 128k, to get a 3D game running in that space is a feat in itself.