The Source for Java Technology Collaboration
User: Password:



John O'Conner

John O'Conner's Blog

State of Java ME development

Posted by joconner on May 23, 2006 at 04:25 PM | Comments (17)

OK, I'm frustrated, really frustrated. I'm just going to let it all out, right here, right now. I'm not pulling any punches.

After JavaOne, I was excited about Java ME development. The new phones looked great, and the Java ME functionality using CLDC 1.1 and MIDP 2.0 looked like a great starting point for me to begin writing something fun. I particularly liked the JSR 209 spec that adds Swing UI features to CDC implementations...but that's another story that I'll tell later.

Last week, I decided to change my cell phone service. I chose Cingular and ordered the sleek Motorola Razr V3. I picked Cingular for the GSM network and the Motorola Razr V3 because it supposedly supports a CLDC 1.1/MIDP 2.0 implementation. OK, it looks nice too.

The phone arrived yesterday, and as I thumbed through the Java Settings, I noticed that this particluar phone has CLDC 1.0 on it...the version information on the phone says so. The Motorola site says the phone has CLDC 1.1. The Motorola "MotoDev" site has documentation referring to CLDC 1.1 on this phone. So, knowing that I want to experiment with the improved Calendar, Date, and Timezone classes in CLDC 1.1, I began researching how to update the phone.

Update the phone? I thought it would be an easy task. Just call Cingular customer support and explain the problem. Right...no way. The customer support staff don't know anything about Java, and they can't guarantee that a new model will have the newer CLDC version either. Oh wait..."you bought your phone through the business department's 'premiere' service accounts," the alleged support agent says. "I'll have to transfer you there for further help." Click click...pause...pause...and then "If you'd like to make a call, please hang up and try your call again..." They hung up on me!

I redial, and the agent quickly notices that I should be handled by the Web Orders department...she's going to transfer me again. I'm nervous, having been dumped earlier. After a couple minutes, the Web Orders department answers. After I describe my situation, she said "I'm sorry, usually customer service handles these calls. Let me transfer you to them." Uh, excuse me, I said...I just got transferred to you from there. "OK," she says, "but they are the only people that can help you." OK, fine. Go ahead, transfer me. Click...click, click...pause...and then again "If you'd like to make a call, please hang up and try your call again." What the hell? No way, they did it to me again.

I'm just about tired of this by now, but I decide to try one last time. This time I get transferred smoothly to the Web Orders dept. But this time, there's little conversation. "You'll have to contact Motorola to get the Java update," the support staff says. "But I bought the phone from Cingular," I said. "Don't you support the phone." "Yes, we do," the Cingular person says, "but you'll have to get the Java update from Motorola." I hung up and called Motorola customer support.

Those Cingular folks are really dumb, I thought. These MotoDev guys at Motorola will be better. They are developer support after all...they'll help for sure.

"Oh, hi. I need to find out how to update my Motorola Razr V3 Java software to CLDC 1.1. The phone is supposed to have this newer version, but the installed software is 1.0," I explain. "How can I update this phone?"

OK, I'm going straight to the punchline now...after being transferred around Motorola twice and hung up on twice, I was told by Motorola that I would have to get a Java update from Cingular. I'm sitting here now, having wasted a full day on the phone. I'm tired, I'm frustrated, and I don't have a cell phone with the Java ME implementation I want. No one can help me...and I don't even have the Mobility Pack installed for NetBeans 5.0 yet. Hopefully, that will be an easier experience.

Is this common? Please, someone tell me that my experience is just a bunch of bad karma coming back on me...this doesn't happen to everyone, right? How can anyone do any Java ME development in this environment. Yes, I see the Wireless Toolkit this, and the Mobility Pack that, and the CLDC 1.1 implmentation there, and so and so emulator is available...but what about the actual devices with real implementations? Do they exist? Where? And can anyone actually help you get the right device and software combination? This is too hard.

At the JavaOne conference, I overheard a big shot executive describe the numbers. Over 200 million cellular phones annually, etc. "If you could just get 5 cents from 1/10 of those cell phone users...you could easily make millions. Why would anyone not write apps for cell phones?" he asked.

Hey, big shot Motorola guys! Hey, big shot Cingular, Sprint, Verizon, and anyone else! Look over here! Yeah, down here! How am I going to make any money from it? I want to write a Java ME app...and I can't even pay you to give me the right equipment and software!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Phone companies in the US are almost universally backward when it comes to anything remotely modern related to cellular phones. Cingular are especially stunted: unlock the phone - NO; download Java midlets over USB or Bluetooth - NO; update the phone firmware - NO; offer more than 10kbps bandwidth - NO .. and the list goes on. Sad but true. I'm afraid your bad experience is standard, and you've only started to discover how bad it can get.

    Posted by: gavineadie on May 23, 2006 at 07:50 PM

  • Feeling your pain, John.

    The bigshot you overheard either doesn't know his own business or is in a different business than the one you think he is in. Probably the latter, but for the ambitious and clueless corporate climber, the former is also possible.

    Support for developers, and users, is one size fits all: for appearance sake. And he knows it.

    Posted by: ae6rt on May 24, 2006 at 06:50 AM

  • Didn't Motorola also say at JavaOne: "I don't think we could have made it any harder to develop for cell phones if we had tried" (talking about the "industry" as a whole)?

    Posted by: dspencer73 on May 25, 2006 at 08:28 AM

  • Hey John,
    Yes I feel your pain. I spoke with the Cingular rep at the 3g americas bof on MSA (another JTWI) and asked why they didn't support the specs that phone already supported? Why have MSA if service providers don't allow us, the developers, to use these APIs? And will there be some penalty if they don't implement the service for MSA enabled phones? Of course you already know what he said...."well that's a business decission" (meaning a bunch of greedy CxO's think they can make the money with their 11 apps, and they don't need us).
    So what to do!?! Take your phone back (they should have a 30day return) tell them they
    lied about the features and you dont want the phone or their service. Then go to Sprint, and get an Samsung MM-A900. I'm not saying Sprint is soooo much better, but they do have a path to actually put your apps on the phone OTA, and they don't usually lock their phone's API's out. However you may need to sign your MIDlet if you use their Sprint specific APIs.
    All the APIs I use JSR-184, MIDP2.0, CLDC1.1, JSR-120, all seem to work without signing, albeit that the user gets the "are you sure" warning, which I'm glad they do. It's important to protect the phone user, but its also important to innovate.
    The only way to send a message to these clowns at the phone companies is to take money from them, move your accounts to providers that support developers, and drop the Verizons, and Cingulars who are trying to shut the small developer out of the picture.
    The only real solution I can think of for the long term is have Sun step up, and remove the ability for the service providers to turn off APIs, or to require the code to be signed by them, but rather have Sun be the CA (certificate authority) for signing code. This is the same model that the RIM BlackBerry and PocketPC Smartphones use. Sadly Sun felt that service providers should be able to regulate the devices on their networks, and turned the power over. That was a bad mistake. Sun needs to take the power back, and support the J2ME developer.

    Just my $.02 worth.
    -Sfitz

    Posted by: sfitzjava on May 25, 2006 at 09:03 AM

  • I am with Cingular, and my contract is up. I called them earlier this year and told them I was going to Mexico for a month and I wanted my phone unlocked so I could buy a SIM down there. They sent me a code like 4 or 5 days later. If you have completed your contract and are leaving the country Cingular will unlock your phone.

    Posted by: haskovec on May 25, 2006 at 09:12 AM

  • My wife has the Cingular Razr V3, but I never checked the CLDC version (it runs all the games we buy for it so...)

    However, I do have the Cingular Nokia 9300 and you might want to consider this. It has the latest MIDP/CLDC and even allegedly has PP (CDC), using the IBM JVM.

    I have the $19 unlimited data plan and the darn thing is indispensable to me now...the wide keypads makes it easy to write stuff, the WIDE screen is amazingly clear, and using Opera Mini means i can quickly surf the web no matter where i am! I also use Flurry email for emails, have several other MIDP apps like Google Maps Mobile and terminal clients, and of course deploy our test stuff on it. You can't deploy MobiTV on it though, although you can on the Razr.

    For Java developers, please consider porting your JSE apps to PP(CDC)...there is an amazing dearth of apps for this profile!

    http://blueboard.com/smalljava/archives/21

    Posted by: asj2006 on May 25, 2006 at 09:49 AM

  • OMG, I just went through the exact same thing with Motorola and T-Mobile about my RAZR V3... I got the same kind of clueless responses from Moto where I was told to talk to the carrier, then to an authorized support site, etc. I was told repeatedly by Moto reps that I'd be called back, but *never* got called back.

    The double burn about this that Moto has tools that would let me update the firmware in my phone, but it only makes these tools available to the service centers (yes, I hear you can illegally get them from certain web sites), but these are the same service centers (and I've called several) that have no clue what I'm talking about when I call.

    Frankly, I can;t see why Moto bothers trying to spend the money at JavaOne to promote J2ME to developers when it's support system make no provision for abcsic issues like this. I mean, how are we supposed to write code if we can't test it on real phones...


    Posted by: wholder on May 25, 2006 at 11:09 AM

  • Update I just called Cingular to exchange my phones. Goodbye Motorola, hello Nokia. I have no idea if this will be better, but I'll find out...and post about it!

    Posted by: joconner on May 25, 2006 at 02:51 PM

  • Well, I hope you got the Nokia with the Qwerty keyboard ;-)

    One caveat about the Nokia 9300 is it is not as well "supported" as older Nokia phones here in the US (ie. many games don't list it as a supported phone), and I noticed it spits out some apps when you try to load it using the JAD, but is fine when you load the JAR directly.

    Posted by: asj2006 on May 25, 2006 at 04:29 PM

  • Yes this is quite common for Motorola.

    I however wonder why still so many units are sold, I helped a friend in retail for some time and this devices broke faster than we could order new ones.

    Posted by: linuxhippy on May 25, 2006 at 11:00 PM

  • There's plenty of problems with the mobile phone industry in regard of software development, as you've started to discover! The good news is that the *huge* revenue opportunity that mobile software represents means that the dumb people in the industry who are holding things back will get fired at some point. However, it will take time. Stick with it!

    Posted by: psynixis on May 26, 2006 at 04:05 AM

  • I however wonder why still so many units are sold

    Well, honestly, it's because most people AREN'T developers. So long as the thing looks cool and the available games and apps work (and they do, my wife has several on her Razr) they're fine with that. They could care less about the fact CLDC 1.0 has no floating points.

    Posted by: asj2006 on May 26, 2006 at 08:09 AM

  • It's the same problem with all phone manufacturers and all services everywhere. They don't really care what profiles are installed or whether they even work, they just want to state that their phones come with Java. I gave up any hope of commercial J2ME development as the struggle of trying to support enough phones with various workarounds was just too much. I'm quite happy to create a few useful personal apps on my Motorola L6 - a Bluetooth GPS application and couple of others. But even so, the phone doesn't support different fonts and you can't use the PIM / file profile without signing the application......

    Posted by: uhf on May 26, 2006 at 12:28 PM

  • I gave up any hope of commercial J2ME development as the struggle of trying to support enough phones with various workarounds was just too much.

    I believe there are several services that can help. Have you tried J2ME Polish?

    J2ME Polish

    Posted by: asj2006 on May 26, 2006 at 07:55 PM

  • I also came back from JavaOne excited about Jave ME development. From the site developer.sprint.com there is a link to a page "Enable Device for Development", which indicates that I have to spend $499 per year for a certificate to sign any MIDLet jar that attempts to access JSR 179 (Location), 120 (Wireless Messaging), 75 (PIM and File I/O), or 135 (Mobile Media). While I am not happy about this additional cost (on top of a phone I have to purchase in addition to a 2-year service agreement), to Sprint's credit they are very "up front" about this requirement. I can not find anything for Cingular or T-Mobile that spells out any similar requirement. Can anyone who has experience with this indicate what is required for those carriers.

    Posted by: dpholberton on May 27, 2006 at 02:49 PM

  • I heard the same things at JavaOne this year. I even bought the new SavaJe all-Java phone. Fantastic hardware + OS, but I digress... I went to a BOF on how to work with Sprint. I don't have their service...it just seemed like a no-nonsense BOF that would get me started in the right direction.

    They explained about their "software vending machine", their usability testing department, their partnering services, etc... All of which felt completely wrong to me. So I asked why it was that way...why they weren't just providing bandwith like an ISP. Their answer is: they get tons of billing inquiries because people don't like what shows up on their phone bill. Or they are unsatisfied with their purchase and want a refund from Sprint. So their strategy is to filter what is offered to you to reduce the customer support. Sounds backwards to me, but that's how they do it.

    The other thing I learned is that features in a phone (like Java, or certain parts of its API) can be disabled for sales reasons. Sometimes they don't want 2 phones at the top of their lineup competing for #1, so they disable features in one set to make the other look better. Imagine that...I write a Java Xlet for a certain phone and it won't run on Vendor X's phone because the API is disabled. Thats mad! How the HE## am I supposed to know what features I can rely on? Now I have to write a API-detection Xlet too? Ugh... That's gonna hurt.

    Posted by: cfreyer on June 06, 2006 at 07:59 PM

  • On Motorolas: The V3 is quite possibly the biggest sign of the basic contempt that Motorola (and the industry in general) have for developers. The V3 was originally released with CLDC 1.0, and was rereleased later with CLDC 1.1. They didn't bother to change the name, or indicate in any way shape or form that the version was changed. On their dev site, the specs are just listed as RAZR V3 (CLDC 1.0) and RAZR V3 (CLDC 1.1)

    On Certificates: I'd be very interested to know whether the certificate you get from Cingular will work with Motorola handsets, as they state that you can only use Motorola certificates which you can't get without a business relationship. So much for PIM access!

    Posted by: queyjoh on September 05, 2006 at 05:57 PM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds