I basically never program in Java. A while back I was forced to write a JNI wrapper for polymail, but just recently I got to write a complete, if little, Java program.
You can read about the program here.
It worked great in Sun's phone emulator, it worked great on my Motorola RAZR that's running Sun's JVM. And then someone else tried it out. And it failed. It failed in a weird way... the text labels on UI elements were invisible. The program itself ran, but there's no text.
This is on a Motorola Q with Windows Mobile 5.0 and the IBM WebSphere Everywhere Micro Environment. That environment is supposedly compatible with the CLDC 1.0/MIDP 2.0 that I built the JAR for. That's the same environment running on my RAZR.
So much for write once, run everywhere. 12 years, let me just repeat that: 12 years, after the introduction of this technology I'm reduced to downloading IBM's entire environment just to be able to debug an application because it doesn't work.
And people wonder why I shy away from Java. Every time I touch it, it bites me.