I completed my J2ME certification a few years back. But have hardly used it at work (I work for mobile handset manufacturing companies).
I get to visit tech exhibitions occassionally and I do see some booths for J2ME tech, but in terms of real world applications, I wonder if J2ME is getting lost in the Android/Meego/iPhone/BADA noise.
Has anyone recently been involved in J2ME deployments (not maintenance)?
J2ME is designed to allow a standard Java platform for systems with minimal hardware. There are still cases where this is important, but one of J2ME's biggest markets was cell phones and PDA's, and these days, even the cheapest of those devices has the kind of processing power and resources that an entire floor of water-chilled mainframe equipment would have required when I started programming.
I won't count J2ME out by any means until I see the press release for the first Android Blackberry, but the real growth is in other areas at the moment. We are rarely all that limited in hardware resources these days, and truthfully, Java's new masters make a lot of people nervous when it comes to "monetized" technologies.
So I don't agree with doom and gloom. Maybe I should open source my game development kit to prove the point, but I am still looking for a real funding before I do it.
On another note, I support Android and J2SE as well, but I will never drop J2ME. Although, my 3D support varies by platform.
Tim Holloway wrote:Ah, yes. Forgot about Blue-Ray! Since that's a platform that strives to control what users can and cannot do, not only does J2ME save the chip budget for flashier things, the more restrictive nature of J2ME makes it preferable to Android. The same can be said, of course for almost any sort of process controller environment. Just ask the Iranian Atomic Energy Commission.
True, but Iran does have the material needed for a bomb.
I would like to say that when I first used J2ME I had some of the same feelings. Now days I just ask people what can't you draw on a Canvas for J2ME that you can for a View in Android or vice versa. You could replace HTML5 or J2SE as well in either order I still have the same answer. What else do you really need? Sure you have sensors and other crap, but that is really device specific and you have optional APIs for that other stuff.
The primary difference between Android and J2ME, however, isn't what you can program them to do. It's that Android is basically a complete consumer OS (with a little help from Linux) whereas J2ME is primarily a container for specialized apps. Any OS and external app infrastructure that may exist is entirely up to the implementer. So what makes J2ME strong is its ability to be custom-tailored to provide a minimalistic locked-down system while still having the benefits of Java.
But, 'minimalistic' and 'locked-down' aren't going to go down well with either customers or even OEMs, in this day and age.
Without OEM support and not so many devices, any platform would slowly move towards irrelevance, as we have seen in the past. (WebOS, Symbian, Meego, LiMo).
As to Blu-Ray, its uptake is a lot slower than predicted, and Apple still doesn't support it. But more importantly, the things one can do with JME on Blu-Ray are rather limited; certainly nothing to base a career on (unless one happens to work at one of the studios that actually create Blu-Ray DVDs).
I saw an article from January 2012 that seems to say that Android and Java ME market share are neck and neck, with Java ME pulling a small edge against Android, in that month January:
If Android is so hot, why has Java ME overtaken it?
By Philip Elmer-DeWitt January 1, 2012: 8:21 AM ET
By the way, In case anyone missed it, the Mobile Service Architecture Specification (MSA) spec (JSR 248) is the current standard for Java ME, not just MIDP 2.0/CDLC 1.1. Though further work on at least the next versions of those specifications are currently marked inactive on Mobile Service Architecture 2 (on Java Community Process).