Sun bidding adieu to mobile-specific Java
news.com
news.com
Main problems: You have to re-invent the wheel all the time. J2me, is basically Java 1.2 with lots of things stripped out. No string tokenizer, no iterators, no collections, etc. etc.
This actually makes it frustrating (re-invent the wheel all the time), yet challenging fun at the same time (it is not bloated).
THe main problem of J2ME is it's very crappy implemetation from OEM, where every fricking manufactor decides to implemt it differently, slapping their apis, and making applications not work on most phones without some major effort.
Carriers, deciding to bllock APIs, as basic as socket connections, media players, etc. and you can't use them without their "permission", aka digital signatures. Ah, and if you are not their "preferred" partner (i.e. surrender half of your revenue to the carries), you will not get this certificates. Which stilfes inovation, and drive small developers, or early startups out of business, unless they are in bed with the carrier.
So, after years developing with J2ME, I can say that it has a leased time. It is not easy to develop for, very very fragmented, and it's power stiffled by the carriers.
You have to be very organized with your builds if you need to utilize many optional libraries b/c phone support can be splotchy at best. Fortunately many of the important libraries such as MMAPI and PDA are commonplace with new phones.