Log in

View Full Version : Mobile Java (J2ME) vs Microsoft .NET


Andy Sjostrom
01-24-2003, 09:06 AM
<a href="http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2909118,00.html">http://techupdate.zdnet.com/techupdate/stories/main/0,14179,2909118,00.html</a><br /><br />David Berlind at ZDNet has written an article on the subject of J2ME shortcomings and how those open a window of opportunity for Microsoft. Given both the hardware standardization of Pocket PC and Smarthpone and the fact that the core components of the .NET Compact Framework is designed to be hardware and operating system independent, Microsoft has positioned itself well to compete with the Java camp. Here are some quotes from the article:<br /><br />"That lack of predictability has manifested itself in what I see as a let down in the "write once, run anywhere" promise of Java. Some Java developers have written to me saying that, based on their experience, Java's "write once, run anywhere" promise is a pipe dream. Even Sun's chief engineer Rob Gingell admitted to me during my interview that the "anywhere" part of "write once run anywhere" is not exactly true. ... In an effort to write one set of code that can be deployed anywhere (or almost anywhere), they can study all the devices that they want their J2ME-based applications to run on in order to find a lowest common denominator to target. Or, they can realize that the different physical user interfaces offer the potential for different levels of functionality from one device to the next, and they can take advantage of that "variety." But that comes at a cost of maintaining separate code bases.<br /><br />Have you ever noticed the display resolution on a PocketPC-based device? It's the same on all PocketPC-based devices. If you want a converged device like the one from T-Mobile that's both a phone and a PocketPC, and the person across the hall prefers Dell's Axim, the same applications will run, unmodified, on both. The reason? Hardware manufacturers that want to license and run PocketPC operating system must conform to Microsoft's hardware specification for a PocketPC device. The same requirement will apply to OEMs looking to build phones that run Microsoft's SmartPhone 2002 OS for data capable phones. Sure, all of the devices have the same resolution display, processor type, and base memory. But beyond that, there's a good deal of variation in industrial design, price, built-in applications, and accessories. As young as the PocketPC-based market is, it's intensely competitive; end users have a wide variety of choice, while developers have a predictable environment to target -- albeit one that needs improvement."

PlayAgain?
01-24-2003, 11:28 AM
Microsoft has a problem in that the market is already saturated with phones that can run Java applications. Even if this .NET malarky is better, the mobile phone market just doesn't want to know because users are already empowered to run the software they would need.

Java is already running applications on smart phones and not-so-smart phones. There are literally millions of people out there who are already Java empowered. Java is already giving normal phones users an always-on connected experience. They are able to enjoy etertainment and even run spreadsheets on phones that are free with new contracts.

And before we get the tired old rhetoric, Java has moved way on from the old DOS type applications of old. There are 3D games, Platform games, Instant Messengers, Web Viewers, PDF Viewers, Connectivity packages and more that do look a heck of a lot better than what used to look like apps developed in Turbo Basic. (which was all that we could enjoy a few months ago).

.NET may be "better", but it has a lot to do before manufacturers will take the trouble of putting it on their platform., and network operators start selling applications thereon. Mind you, if the files are as bloated as we have come to expect from Microsoft executables, the Network Operators may well want the extra revenue ;-)

Andy Sjostrom
01-24-2003, 11:56 AM
Java is proven on mobile phones, while .NET is not. We really don't know how ".NET enabled" phones will or won't work. However, the article does bring up a dilemma for Java people: the platform is not unified. What runs on one Java phone won't run on the other. That has to be addressed, and knowing how poorly Java applications ports across operating systems and different hardware on the server and desktop side, it won't be easier on cell phones. In my opinion, only Microsoft has a proven track record on keeping a platform, used by hundreds of millions, together. That experience will be critical moving forward in this market, as well.

markpmc
01-24-2003, 03:43 PM
I agree about the "write once, run anywhere", but it's not entirely accurate to say it's a pipe dream.

The current crop of J2ME are very limited in the UI department. Once you baseline your app for a phone, it looks like crap on a Palm or PPC device.
Java isn't really "useful" on a phone, it'll do a good game, but java is not "currently" allowed access to the phone API's or the various phone lists. The only exeception here is a Symbian device which was designed from the ground up to allow java to do everything.

A second app w/ a updated UI is required for PDA land. That's all. If you've written you app correctly (seperated presentation from logic) it's fairly easy to port between a phone and a pda.

With Palm FINALLY moving to devices w/ processing power we'll see the Personal Java spec being used for both Palm and PPC devices. So the same app that runs on a PPC will run on a Palm OS 5 or 6 device. To make the future even brighter Sun is close to releasing the PDA profile for J2ME. This'll allow a java app access to the native databases on a PDA. So a contact manager written w/ the new spec could work seamlessly on Palm, PPC, Linux and Symbian devices! The dream is that a user can choose the device and not lose "thier favorite apps".

Go ahead and send the flames....

markpmc

Scott R
01-24-2003, 03:47 PM
Andy, I'm not sure that I'm following your thinking. Based on the quote from the article that you provided, I see them as simply saying that Java's "write once, run anywhere" philosophy doesn't work because of the various screen resolutions of the target devices. You then say that .NET is better positioned because all Pocket PC's have the same resolution. .NET is in the same boat as Java, the way I see it, because Smartphones have a different screen resolution than Pocket PCs and other devices running .NET (webpads, car stereos, refrigerators, etc.) will all have different screen resolutions as well.

I've said it before and I'll say it again...Applications need to be designed around the capabilities of the target devices.

Since I have your ear, I have a couple of questions about .NET for you:
1) Does the CF (and whatever else you need to code Pocket PC apps) come in the box with VS.NET now?
2) How big is the runtime? Do any of the new PPC 2002 devices come with the runtime out of the box?
3) How is performance compared to, say, embedded Visual C (or whatever it's called)?

I'm going to a 5-day VB.NET training class next week (I'm already an experienced VB programmer) and am anxious to start playing with it. Of course, I'm still having some difficulty getting my company to pay for a copy of VS.NET.

Scott

Andy Sjostrom
01-24-2003, 04:30 PM
I agree with you. Here is what I say:
Microsoft is better positioned when looking at what they have been able to do: provided a hardware spec that OEMs follow (screen size, input options etc) and built an operating system for that spec. I believe Microsoft will continue to do that successfully. On the other hand, the Common Language Runtime in .NET Compact Framework is independent of hardware and operating system. So, looking at what they do with for example the Mobile Internet Toolkit (taking care of UI and input adaption depending on target device), I also believe Microsoft has the strength to succeed better (note: better not perfect) in the "... run anywhere" part, too!

Your questions:
1. .NET Compact Framework went gold not long ago, ie code is finished and released. But since VS.NET 2003 (the tool) is still in beta, it is not yet "in the box". Not the released box, anyhow...

2. The .NET CF runtime is slightly above 1MB

3. My experience is that it is performing better than eVB but can't compete with native eVC++.

sualeh
01-24-2003, 05:36 PM
Scott, I bought myself VB.NET for $100 as a Christmas present - (relatively) inexpensive for personal use. I downloaded the (then) beta of the Compact Framework, but could not get it to work.

I am hoping to upgrade to VB.NET 2003, and get the Compact Framework for free.

Andy, any idea if the CF will be available at no additional charge with VB.NET - that would really boost Pocket PC development. I would switch to VB.NET/ CF from eVB in a heartbeat.

Green Dragon
01-24-2003, 07:20 PM
Nokia are getting behind J2ME (and Symbian, obviously) in a big way. I'm off to the Java tech day in London next week :P, and half the presentations are about J2ME (other half J2EE) from Nokia & Motorola.

Nokia have such a big market share it's untrue (at least here in Europe, not sure how it is in the US...) with Motorola following up. If those two put their weight behing something it would be really tough for any other spec. I can't imagine phones supporting both, so it looks like J2ME will have a pretty firm grip for a couple of generations at least.

Tim Allen
01-24-2003, 08:46 PM
Microsoft do have the same problem as the Java lot, but the point is that they have one huge advantage in that they are one company and can make unilateral decisions very quickly.

So even though the phone/other device world is much more diverse a platform than the current defacto standard Pocket PC hardware spec we all know (and mostly love), and Microsoft will not find it so easy to dictate a standard hardware spec as they did for Windows PDAs, I still they think they will get there before the Java community.

Will T Smith
01-24-2003, 10:52 PM
.NET is alot better positioned to operate on cell phones.

.NET is designed to be more "hardware friendly". That is, .NET actually takes the hardware platform into account. It also has more hooks for interaction with native methods.

Ultimately, I don't think any of the "small screen" smartphones will be successfull. The screen doesn't facilitate a lot of "smartness". Rather, I would envision smartphones as clambshell "flip style" devices that put the speaker in the cover.