« Apple Lawsuit, Could Affect Bloggers | Main | Justin Gehtland's blogging again »

Java on PocketPC: What do YOU think?

January 21, 2005

I've thought of 5 reasons why PocketPC is not a popular platform for Java apps.  I'm asking the Java community for comments on PocketPC and PDA development in general.  Why do I care?  I spent a year working on a Java/PocketPC project and subsequently have put up the Java on PocketPC (unofficial FAQ) which is starting to get a decent number of search hits.

I have a few thoughts that I'm just going to list out.  Read on, then post your reply in the comments...

1. Shouldn't Swing, AWT and SWT folks care?  It seems like over the last year or so, Java GUI development has gained in popularity again.  Sites like ClientJava have appeared and become popular.  A bunch of Eclipse and SWT books have come out.  Desktop Java apps for everyday people keep cropping up.  So my question is, that shouldn't a fraction of these folks (say 5%, I'm being conservative) care about running these GUI apps on mobile devices?  And isn't, a CDC-based device the most natural platform?  And isn't the PocketPC the most widely available CDC device right now?  So what am I missing here?

2. Isn't CDC a better platform for business apps than cLdc?  I've felt this for a while, and C. Enrique Ortiz' post kind of hit a nerve for me.  Here's a quote:

...history and reasoning tells us that the time when higher-end devices that are manufactured at a fraction of today's cost will come making today's rationale for the two [separate] worlds [CDC and cLdc] irrelevant....

By "higher end", he means CDC based devices, as opposed to cLdc based devices.  I think a point will come when those 100 million (or whatever huge number) Java cellphones will be powerful enough to run CDC apps, not just cLdc/Midlets.  And your CDC apps will run on "traditional" cLdc devices.

By "business apps", I mean Internal software as defined by Joel Spolsky.  So my question is, with the massive amount of attention that traditional Internal software gets (translation: JAY-TOO-EEE-EEE), why isn't that spillover to making that software mobile happening.  Yet?  And 5% of J2EE is still pretty large.  Or maybe it is, but people aren't going public with it?  Yeah, I'm talking about the kind of mobile app that your UPS guy carries around so he can beam HQ and tell them he's delivered your package.  There's gotta be more killer apps like that waiting to happen?

3. Is the economic slump the only reason?  I realize that we've been through a recession (atleast here in the US), and taking core business apps mobile may not be a high priority in tough times.  For an IT manager, it may be hard to justify the ROI on such an effort.  Or maybe, the constant "advancements" in J2EE are keeping everyone too busy to mess with mobility?  Again, there's gotta be some fraction of folks that can actually say: we're gonna save money by going mobile.  For ex, not having to give a laptop to all of our sales staff just so they lookup digitized price sheets - instead, give then a PDA.

4. Is PocketPC as a platform, untrustworthy?  Maybe it's religion.  Okay, honestly, a good fraction of the Java community doesn't trust Microsoft.  (I'm putting it lightly).  I don't wanna get into the who's and why's here.  But it is an undeniable fact, IMHO.  So maybe a lot of people stay away from PocketPC because they see it as a platform owned by Microsoft.  Which, I admit, it pretty much is.  And I'm not a platform evangelist or shareholder for Microsoft, so I don't have any fancy arguments to change your mind.  I'm pretty much a Java person myself.  I have this simplified argument: in business, sometimes you have to sleep with the enemy.  (God, that sounded like a Trumpism).  Look at it the other way, just ignoring a formidable device platform for purely religious reasons?

5. Maybe, people just don't know where to begin?  I finished working on the Java/PocketPC app we did in March 2004.  I didn't realize that there are [potentially lots of?] people out there wondering where to begin till I read this blog post. (And a comment in the followup post).  That's why kind of drove me to put up a FAQ on the topic.   If you've read this far, you should also read the FAQ - after posting your reply in the comments.  :-)

Update, Jan 27 '05: Read the PocketPC enthusiasts discussion thread in response to this article at the PocketPC Thoughts blog.

January 21, 2005 at 11:00 AM in Java | Permalink

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d834205eab53ef00d8346db7a069e2

Listed below are links to weblogs that reference Java on PocketPC: What do YOU think?:

Comments

I have pondered these same questions. And the main reasons for the slow CDC adoption has been, in my opinion, twofold: 1) economics, and now I realize 2) the lack of application management facilities; by this I mean, services for easy application provisioning, and so on. I write about this on my weblog: On Managed Environments and CDC....

For years there have been CDC VM vendors (Insignia, Esmertec, etc) but the consumption-side has been slow. But I think that now, with the different efforts that are happening, as I wrote in A Tale of Two(Java Mobility) Worlds), I expect that things are going to change in the CDC-side of things.

It is pretty "simple": if the opportunity is there, developers (and thus applications) will come. But the opportunity (which begins with mass distribution) won't happen if the CDC handsets are not being pushed and accepted by the main distribution channels (carriers, etc). And carriers, etc. won't push them if they are expensive and hard to provision/manage. So there is work to do, and work already has started.

So it is not that PocketPC is not a good platform for CDC - PocketPC, and any ARM-based handset, is prime for CDC.

Thanks for putting the FAQ together.

CEO, J2MEDeveloper.com

Posted by: C. Enrique Ortiz | Jan 21, 2005 11:15:35 AM

For me it is not a lack of a market it is the lack of proper, easily-available environment. I have many situations where a PocketPC (or even high-end Palm) mobile device is being used and would be a great platform for a rich Java client. This is with paying clients that would love integration with their backend systems.

I'd love to have RMI (for Jini, for instance) or JAXB (for better webservice integration) and Swing (for a sweet UI). Personal Profile seems to fit the bill. But I can't go to Sun and download a VM and profile for the platform (though I can for many other platforms - even the RI only runs on Red Hat). I can use the IBM J9, but it is an incredible pain to install and configure. I couldn't seem to get JAXB to work with it. I couldn't get JERI to work. And of course, if you leave your PocketPC off too long, it wipes the memory and you have to do a soft reset (thus removing all but the default apps from the device).

All in all a great idea that seems to have no support or stable environment...

FYI Before anyone brings it up, I live in Canada and the Zaurus is not available here.

Posted by: Mike Park | Jan 21, 2005 7:54:28 PM

Wow, good feedback! I think the economics argument (#3) is an important one. Who can argue that. I hope that people start taking chances now that we're in a better state (atleast in terms of IT spending) than we were in 2001/2002.

The Lack of Application management facilities is something I missed. I didn't blog that in my post. Mainly because I'm still trying to grasp it. I think that argument applies more to consumer software than to custom software developed by the IT department of a large company.

Also, I agree about the difficulty of installing J9. But it sounds like you (Mike Park) did get it working after all. The 'wipes memory if PocketPC off too long' is a device issue. Would installing your software on a flash card solve that problem?

All the other points about full RMI, JAXB, Swing etc are what I would call advanced issues. There are APIs to get around that. Like XML-RPC instead of RMI? AWT or SWT instead of Swing?

Thanks again for the good ideas!

Posted by: Vik | Jan 24, 2005 11:20:07 AM

i got one reason, .NET framework and c#

Posted by: kaan engin | Jan 26, 2005 8:46:35 AM

.NET CF is a good platform for the _microsoft_ community to develop PocketPC apps. But are there that many more IT deparments developing "business apps" for Pocket PC using .NET CF? I touched on this in point #4 ("untrustworthy"), but asking the Java community to use .NET CF is even more challenging than asking them to check out Pocket PC as a platform.

I've used .NET on occasion and can see why "traditional Microsoft developers" rally around it. For the Pocket PC app I worked on, .NET CF was still in beta so it was not a real option for us. Having used Java since 1996, I just have trouble convincing myself that .NET offers compelling advantages (all religion aside). Maybe in niche markets... and maybe if I was working in a Microsoft-centric shop, but not otherwise.

I try to keep an open mind about technology though. :-)

Posted by: Vik | Jan 27, 2005 9:55:41 AM

Hey,
I have been trying to get on with J2ME for sometime, but alas, I havent found a good starter kit. I am in a precarious situation understanding various jargons that come along with J2ME :( leave alone coming up with a program or two! I have just bought this new Nokia mobile phone with BlueTooth hoping to do some mobile Java programming and I think I am raring to go, but with help of BLOGs like this.

Can you point me to good links which can help me to start with mobile programming!

Thanks Vik [JB Hunt friend :->]

Posted by: Pawan Dandawate | Feb 14, 2005 12:04:28 PM

Hey Pawan!
It's been a while. (I'll drop you an email).

With phone's, you're gonna be doing midlets. My faq doesn't focus much on those, but check out the blogs listed on the right side of the FAQ page. My focus is more on the pocketpc side. Though you can run midlets on it also.

Vik

Posted by: Vik | Feb 15, 2005 10:20:53 AM

Hey,
I was wondering how to play java games on my PPC. Im looking to play cell phone games on my ppc, because the games are more commercial and to my liking while PPC games arn't frequent nor very good. The files are .jar, is there just some Java plugin to download? any help is apreciated.
scott

Posted by: Scott | Feb 16, 2005 3:55:46 PM

One of my stumbling blocks is also with the development environment. I recently installed the 8MB J9 vm, but wasn't able (or don't know how) to execute programs written from Sun's J2ME Toolkit. I scanned the web a couple of times and didn't find information with regards to this... in fact, I've noticed other people with the same problems. Possible that you can address this in your FAQ? So the cross compatibility is a question for me. Without it, I don't understand what advantages J2ME brings.

Posted by: Sydney | Feb 22, 2005 10:17:47 AM

I recently purchased the Esmertec Jeode JVM for my HP Jornada 567. So far, I'm very impressed. I've experienced no problems, and all the applets I've tried from javaboutique run fine. It integrates into PIE, and I'm using it to run Java applets on my today screen using Novosec's Active Today. I'm sure that if I were running Java applications I'd have some trouble, but for my purposes it's perfect.

One little problem - the PocketPC 2002 version is no longer available on Handango. They have a version listed for Windows Mobile, but it's Windows Mobile 2003 only, despite the description. I found a guy selling the software on Amazon.

Posted by: Dennis | May 14, 2005 10:58:07 PM

Dear sir,
i am suryakant.now i am working in CDAC pune.i hav to start work on the pocket pc. so please giv me suggestions to start work.i hav to do the connection of pocket pc to desktop pc. giv me applications has to be possible.and system requirements.

Regards,
Suryakant.

Posted by: suryakant | Nov 11, 2005 3:55:34 AM

Hai,
i want to develop the applications for the pocket pc.in which i want to access the mssql database using jrun4 server.i am very new to all these concepts. for GUI developent i am using waba software. pleae give me suggestions on development.waiting for your reply.

Thanks & Regards,
Suryakant

Posted by: suryakant | Nov 16, 2005 8:14:58 AM

Hi developers, I have a question. I am using the j2se 1.2 in pocket pc. Do you know how to intercept the event when the virtual keyboard (SIP) is pressed?

I saw that this is possible with swt, but this option is only for ARM architecture. I have a ipaq h555 with x86 architecture.

Thanks

Posted by: Vladimir | Feb 13, 2006 2:22:25 PM

Hi
I use Mysaifu jvm on a windows mobile 2003 device (hp ipaq hw6500). Does anybody knows how to drive telephony (GSM/GPRS) using J2SE application? Is there an implementation for windows mobile of jsr 253 (MTA Mobile Telephony API)?
Thanks

Posted by: Antonio | Mar 28, 2006 8:31:44 AM

Post a comment