The imminent death of J2ME ?
Sunday, September 27th, 2009 | Author:

The iPhone, Android, Blackberry, Symbian and Windows Mobile platforms seem to be all the rage these days. Everyone’s talking about them, everybody’s using them and everybody’s praising their state-of-the art capabilities.

In fact, some even believe that they will bring with them the death of J2ME, citing the platform’s age, speed and primitive API as its mortal weaknesses. While there is some truth to these claims (J2ME is pretty old, and more modern platforms do have some pretty cool applications running on them), make no mistake about it: J2ME is not going anywhere anytime soon.

Find out why after the jump.

I must admit, when the iPhone was first launched I got a little bit concerned about the future of J2ME. But, as I spent more time thinking about the matter, my fears pretty much vanished. In fact, in the years since the iPhone was launched, I was unable to find a single solid  reason for which J2ME might become extinct. For your entertainment, here is a list of some of the most commonly cited causes for J2ME’s imminent death, along with an explanation of why they’re wrong (for simplicity’s sake, I will refer to the iPhone, Android, Blackberry, Windows Mobile and Symbian platforms collectively and generically as “the iPhone”) :

  • J2ME is slow when compared to the iPhone” – J2ME is only a standard. It can’t be slow,  and it can’t be fast. What can be slow (or fast) is the hardware running J2ME.  Sure, a $600 iPhone is faster than a $100 J2ME-enabled regular phone, but that’s not really a fair comparison. The fastest J2ME enabled devices of today can provide performance levels on par with those offered by the iPhone, at a very competitive price.
  • The J2ME API is not nearly as powerful as the iPhone’s” – This is extremely false. In the beginning J2ME was limited (it was developed a decade ago for the devices of the day), but over the years it has been extended and upgraded to keep up with the times.  Sure, at first we didn’t even have floating-point support, but things have changed and today stuff like 3D graphics, integration with the phone’s contacts, calendar and filesystem, multimedia and bluetooth support (take that, iPhone!) are commonplace features. More advanced features, like GPS and touchscreen support (available since the MIDP 1.0 days !), are quickly gaining ground.
  • “J2ME suffers badly from device fragmentation issues” - this is pretty much the only legitimate claim on the list. However, good coding practices, attention to detail and tools like J2ME Polish can pretty much take care of this.  At the same time, if you try to run a state of the art J2ME application on a 5 year old device and find that it doesn’t work  because the phone does not have enough resources or it is missing some API’s, you really can’t blame that on J2ME. Question: do you think that an application for the iPhone 6.0 will work on today’s iPhones ? Me neither.
  • “J2ME applications can’t match the look and feel of the iPhone” - One word : TWUIK .
  • “The iPhone has an ever-growing userbase and will eventually kill J2ME” - As iPhones get cheaper, so do J2ME phones. As the iPhone gets more powerful, so do J2ME phones (for example, the next generation of J2ME devices, those that will feature JavaFX support, should be pretty powerful). As more iPhones are sold, many more J2ME phones are sold at the same time. As the iPhone specs are improved, so are the specs of J2ME phones. As more clever applications appear for the iPhone, clever applications appear for J2ME also. For example, have you seen some of the latest augmented reality applications on the iPhone ? J2ME had stuff like that way back in 2006. Unless the iPhone somehow magically becomes dirt-cheap, it doesn’t stand a chance to kill J2ME.
  • “J2ME is not as flexible as the iPhone” – Let’s compare a standard J2ME phone with a current generation Apple iPhone! I don’t have to jailbreak my J2ME phone to install “unapproved” applications on it. Nor do I have to wait for proper bluetooth support (it’s already here).  And, from a business standpoint, J2ME is the most flexible platform around simply because it has the largest userbase and the cheapest devices.
  • “With so many platforms around, J2ME’s market share is going to dwindle” - Regular phones support J2ME. Symbian phones support J2ME. Windows Mobile phones support J2ME (albeit not directly). Blackberry phones support J2ME. The only platforms that do not yet support J2ME are Android and the iPhone.  Even if these two somehow manage to gain a 50% market share (we’re talking about 50% of all mobile devices), that still leaves J2ME with a 50% marketshare. Enough said.
  • “Everyone is switching to the iPhone and there won’t be enough developers left to work with J2ME” - The cost of entry for J2ME development is almost ZERO (you only need a computer running Linux) and for that money (again, $0.0) you can get a mature, fast and full-featured development environment (Netbeans, for example). Being low-level and simple, J2ME is easy to learn. Being old, there is a lot of freely available information on the Internet. Being the most widely available mobile platform, you get the largest  possible userbase for your applications. These reasons alone should attract a constant following of developers.

So what does all this mean? Well, certainly there’s plenty of competition for J2ME. And certainly a lot of developers are focusing on other platforms, to capitalize on their growing marketshare. And, as a developer, it would be wise to take a peek at the competition and learn something about development on other platforms.

But, just like Windows in the desktop world, J2ME has a huge userbase and enough features and flexibility built-in to safely place it in the #1 spot  for a long time to come. For these reasons, J2ME simply cannot be ignored if you’re targeting the mobile world. You can always release a high-end version of your application for the iPhone and its limited userbase, but you’re probably going to be much better off releasing a J2ME version for the masses first and see how it catches on. With the proper development team and tools, your J2ME application can look just like its  iPhone counterpart on high-end devices, while still running on lower-end devices (albeit without the fancy look and feel). If nothing else, this fact alone will ensure J2ME’s survival.

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • DZone
  • MySpace
  • Technorati
  • Tumblr
  • Twitter