![]() |
J2ME Secrets |
|---|
So where does this leave the J2ME developer? The development tools have never been better. That's the good news. I can hardly think of anything more easy to use than Netbeans. The bad news is, that unlike any other form of programming you might do today with any set of tools, you are pretty much unable to meaningfully market your creations yourself. The carriers have done their best to lock up their clientele. They have made a mockery of the whole code verification system. It was supposed to be based upon impartial third parties like Verisign, Thawte, et al. Instead the carriers have implemented their own certification processes and pretty much vitiated the third party system. They claim they do this to "ensure a quality experience" for their customers. From my perspective, they just want to be the gatekeepers to the market. Unless your application pretty much just uses the keys and the screen, you will need it signed by them. Any of the really interesting J2ME API's all pretty much require proprietary code signing. Not only that but if you want to market to more than one carrier's clientele, you will have to go through each carrier's process and sign your code with each one of their private certificates. You can't just buy a single third party certificate and have that suffice. The Java Verified program will only buy you the right to use that logo. I can't see spending at least a thousand bucks to have your app tested by NSTL or some other body just for the privilege of having a logo. That certification won't buy you a thing in terms of your application actually running on the phone if it uses one of the "protected" API's.. Any app of consequence other than a game will require persistant storage I/O, Bluetooth, Infrared, Multimedia or perhaps the PIM (Personal Information Manager) API's. LBS (Location Based Services) API's are starting to appear. But access to any of these more interesting API's is pretty much locked out unless you can become an insider and get a carrier's certificate to sign your code. What can be done? Not a whole lot. The restrictions are already out there in the firmware of the phones. Even if the carriers relented today it will take several years for that code base to trickle out of the mainstream. The only way I see to quickly mitigate the evil that is already done is to make the required certificates readily available at very low cost. The only thing you can do is voice your opinion to your legislators and perhaps the carriers will be forced to make the required certificates readily available. The legal precedent is there from the old Carterphone case. The other thing we can all do is just try to get the word out and support and buy phones that are "un-branded." The next time your mobile device contract comes up for renewal, resist the temptation to extend it to get a new subsidized phone. If yu want a new phone, pick one from the broader retail market and buy it. Make sure it comes with the OEM software and not the carrier branded version. Just put your SIM card into to it and go. If you are like me, you'll very much enjoy the many more options for control and software you have that are taken away by the carrier branded stuff. If the general public knew how much function they were being denied and/or how much control over what they can and can't buy and do with their own mobile devices, I think there might be a backlash. To some extent there already is. Check out the "Green Phone". There is already a fairly robust aftermarket for unlocking GSM phones. I'd like to see more debranding options as well. You can develop killer apps and try to get them out there via various shareware and third pary marketing vehicles like getjar.com and Handango . But it will be kind of disheartening to try and market your unsigned or even your third party signed (but why bother signing?) app with caveats like "This application requires Bluetooth so if you have a Cingular/ATT (fill in the blank) branded phone you won't be able to run it." But we can try. If nothing else, that may prompt more folks to start asking "Why doesn't this app work with Cingular." Of course, Cingular will blame the app vendor and say they just need to get it signed. They'll omit that they control that process and regularly deny access. Google Earth Mobile is a case in point. Cingular customers have to constantly keep permitting the app to access the net. But honestly, I can't blame Google for not trying to manage all of the various certificates they'd have to obtain to make their app work. My guess is that they've just taken the stance that their app is good and that customers will want it and perhaps complain loudly enough to their carriers that the carriers will relent. I wish them well. Cingular's answer to customers who complain about the incessant prompts when accessing Google Earth for Mobiles is that it is Google's fault for not getting the app signed. And so it goes. I've wondered why so many of the apps out there are mindless games and so few offer the kind of utility we see in the PC world. I'm convinced that it is mainly because truly useful applications which exploit the power built into the devices require access to the API's and that is exceedingly hard to come by with what the carriers have done to hobble the devices to their own profit. So in reality, the carriers have erected a HUGE barrier to the kind of technical innovation that would otherwise be happening. This, in my view, explains in large part why the choices available to users outside the US are so much better. Just surf the web and see how many of the sites and retail outlets for the really cool mobile stuff are outside the US. And maybe, just maybe, one of the smaller carriers here will be the first to break ranks and give up the proprietary certificate scam and get back to what was obviously the original intent of JSR 118. When and if that happens, developers will flock to work in a truly "open" market and we'll see the emergence of true "best of breed" applications. That carrier will then enjoy the same kind of depth and selection enjoyed by Windows users and that carrier will enjoy growing market share because folks will be able to do more of what they want to do with their devices. One can only hope. Could this be the beginning of the end for J2ME? Sadly, other mobile OS and development environments seem to be making great strides. The misapplication of JSR 118 by the carriers may ultimately spell doom for J2ME as developers realize that there is precious little real outlet for their creations. If enough developers get frustrated and opt for other development environments, J2ME will become another OS/2. OS/2 lost the "developer mindshare" race to Windows back in the 90's for reasons that are similar. Bill Gates may be able to "force" the carriers to keep Windows Mobile relatively open or deny it to them. J2ME has lost the chance for that kind of leverage and there isn't the necessary leadership to pull it off. How many Java developers have gotten excited about J2ME thinking it was like the rest of the Java world and left for greener pastures when reality hit? I've wondered why many of the J2ME developer forums that I've visited seem anemic in comparison to their counterparts in the PC software world. As one long time developer friend of mine put it "You have to have deep pockets if you want to do J2ME developement." Things ought not so to be. I think J2ME is worth fighting for. I'd sure hate to see the mobile world ceded to Windows Mobile and the like.
|
|
|---|---|