![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQYgAjwKKBOxD2uMh7xtkhhnstFMw80PaNiIIp9x5JsOa3cVqzQ4dioIOHYydrV1JSAmhxYXQgnWSuvTdL__PCvzL2pQmYhY7ctxrNtwun54OYJNGT6OU2f3kToDfvIvM3kvuaLhkfEg/s200/knights.jpg)
The claim is that J2ME is too much of a hassle, first because of its porting problem, then because of the carrier related problems, and in the end the result on devices doesn't look too good anyway due to the platform limitations.
I agree that J2ME hasn't been very pleasant for developers in the past few years, and same goes for other platforms such as Brew, Symbian, Windows Mobile to some extent - each with its own problems (Flash Lite is somewhere in between it's relatively new and promising but didn't make as much noise as iPhone/Andorid). But things are changing and it would be a shame to drop these platforms just when they are maturing and go to new and shiny platforms that is still in its boot camp...
But let's go back a bit, and ask first the very important question: Who is your target audience? This marketing 101 question will lead to the next question: What devices does your market audience use? (or in other words: What are your target devices?)
I believe asking this question, while ignoring technology aspects for a second, is very important since it makes the distinction between which devices your target audience uses to which devices you would have liked them to use...
Yes, there are new shiny platforms like the iPhone and delayed but soon to be launched Android, and yes, you can do great things with those. Things you wouldn't have dreamed about doing in J2ME. But, your users are not necessarily using them. To be exact, whatever your target is, 0% use Android currently.... And as for the iPhone it is true that it has gained a very nice chunk of the smartphones market share in the US (27%), but its global marketshare when you take into account all phones (not just smartphones) is 0.14%...
Also actual handset market share data may surprise you sometimes. For example in the US you will find that the top phone is Motorola V3, which really doesn't have a strong J2ME virtual machine, and my guess is that its Brew version strength is similar... Other phones in the top places are not that strong either. Note that I am not talking necessarily about currently selling phones, but about handsets that are currently in the hands of the American people, and until iPhone/Android will crawl up to the top of the table it will take time.
The reality is that sometimes your target audience uses low-end devices. Take gaming for example. I believe that the true promise of mobile gaming is bringing games not just to those with the newest smartphones, or niche gaming devices, but rather get them to everyone - to those "dormant" gamers, that would love to kill 5 minutes on their way to school/work/senior citizens house... And experience has shown that you do not necessarily need a game with killer graphics/FX - in fact the most simple games such as trivia games (who wants to be a millionaire, wheel of fortune) and puzzles such as Tetris have been the best selling games, you don't have to take my word for it - check out Jamster's top mobile games list.
So my bet is that J2ME will stay a solid platform for gaming and even the first choice as it is today, even if the new platforms offer more stuff.
On the other hand, if you are developing business applications that require anyway devices with good internet connectivity, big screens and maybe even full qwerty keyboard and/or touch support, naturally your first choices will be smartphones platforms like those who've been around (Symbian, Windows Mobile) and also the newer iPhone and Android.
In any case, don't forget that all the childhood sicknesses that J2ME has been having in the past few years are still waiting to happen on iPhone/Android... It is true that iPhone is less problematic in the same way that Mac hardware and drivers was less problematic than what we used to call "IBM-compatibles" (now known as PCs...) - simply since in the PC world there were hundreds of hardware suppliers and in the Mac just one... However, Apple might also release several devices for different profiles - even now we already have 2 devices: iPhone and iPhone 3G. Now what about the rumored iPhone Nano (Some say it's a hoax), or the other iPhone flavors that will be launched in the future? (iPhone Air?...)
One of things the mobile market has proved is that people like to differ themselves with cool new gadgets... The iPhone definitely hit that spot, but you can't do it twice - people will be looking for the next cool thing, and I have no doubt Apple will know how to provide it, but once you issue different screen sizes and different capabilities, you break somewhat the promise of no porting problems (And don't forget the iPhone look alikes coming soon from all the major handset vendors, each of those have the potential to become a hit, but they won't have the same platforms at all..)
And the irony is that just now when people have given up on J2ME, it is finally getting stabilized... it is not there yet - but definitely going in the right direction. For example, many developers can tell you that porting to the new breed of devices is not that hard as it used to be. In fact MIDP 2.0/CLDC 1.1 devices actually sport reasonable if not good VMs that are less buggy and less quirky. This led to the one-JAR-fits-all approach, that could have never worked in the past, but surprisingly enough, it works now. It may not fit 100% of the devices, but it fits a very large proportion of the newer devices.
In addition, capabilities that in the past were non-existent in the Java world because of the sandbox approach are now available on most new devices: Starting with bluetooth, advanced networking (Not just HTTP), which were here for a long time now, going through addressbook and file system access, location based services, 3D graphics, vector graphics which are available on most new devices and till newer features like content handling (your java app can be registered as a handler for a content type, so you can write a video player that automatically launches when the user clicks on video file even outside of the java context).
And the best thing is that all those capabilities are better standartized than before. And also Sun is actually taking a proactive role both in the standartization and also in introducing new frameworks that makes things easier for developers such as their new UI toolkit, LWUIT.
To sum up - don't get me wrong, I believe that iPhone and Android are both great and promising platforms that open new possibilities for mobile developers, and we can already see its effects on the platforms market. There's nothing like a competitor "breathing on your neck" to get you finally going faster... But: Don't focus all your energy there. Pay attention to the platforms that are currently in the hands of your users, and that in spite of how things look like now, will probably stay there, at least enough to make you get used to them...