Java Will Never Be A Mobile Platform - Thoughts On Nokia, iPhone, and it’s Murderer
Rick Ross points to some amazingly bad conclusions from Nokia on their supposed “iPhone killer”, the Tube, and then throws his own in for good measure,
Speaking at a recent conference, Forum Nokia VP Tom Libretto, confirmed that the Finnish telecom giant has a new touchscreen device in the pipeline, tentatively called “Tube” (details and pics at symbian-freak.com.) In marked contrast to Apple, it appears that Nokia is embracing standards, and the Nokia Tube will likely have Java inside from the start!
Speaking about the Apple competition, Libretto had this to say about 6 million iPhones having been shipped so far, “We’ve done that [volume] since we’ve had dinner on Friday.”
The problem with all of this is that it shows Ross, Nokia and the mobile device industry in general still haven’t managed to figure out what makes Apple and it’s new mobile touch platform (which includes the iPhone, the iPod Touch and we can only assume more to come) so compelling. It’s difficult to watch an industry that is slow to learn from a game changing competitor, as I experienced in the insurance industry when Progressive came on the scene in 2000 with it’s direct to consumer model. For that topic though there is a massive amount of business literature, just Google “Moved” and “Cheese”
I will also let slide Nokia’s attempts to compare iPhone numbers to Nokia numbers in the article, without even mentioning that those numbers would have to be all shipping Nokia phones, not just smart phones and certainly not just the “Tube” prototype as it has yet to be released. I doubt we’ll see this new Java experience, if they even follow through with it, on the cheap plastic candy bar phones Nokia still sells in the millions.
For this entry, I’ll go Daring Fireball on Ross’ allegation summed up politely in his sentence: “In marked contrast to Apple, it appears that Nokia is embracing standards, and the Nokia Tube will likely have Java inside from the start!”
The False Java Test
First of all, why do people still believe Java on a mobile platform, or any consumer facing platform for that matter, is essential? Not only could you point to the numerous failures of the “write once, run anywhere” approach from both a technical and historical perspective, this litmus test - shouted whenever a distributed platform emerges on the market - is never a predictor of a device or business’s success to both the consumer and the developer. In fact, it sometimes hurts it. More on that later.
The False Standards Argument
Second, Ross indicates that Nokia will be a better platform versus iPhone because of it’s acceptance of the current Java standards. However, its obvious application code executing in a runtime through a mobile phone currently cannot scale visually. Can you imagine a MIPS or JME Jar that has 8-bit graphics designed for a non-touch postage stamp sized screen running on an iPhone? This is an important argument, because Ross indicates that with “standards” and “Java” we’ve won something here. We haven’t. All those “standards” compliant mobile apps currently out there wouldn’t even be worth the download to the Nokia “iPhone killer”.
Think on this: we’re talking about a new GUI layer that a developer would have to write against to even begin to approach the smoothness of the iPhone. This would be about as “new” as writing to the iPhone SDK for a developer. The benefits of these supposed standards would win us - ease of development and using existing developer knowledge of the code and runtime - wouldn’t work.
You could counter with JavaFX, which Sun took great pains in 2007 to show off with a UI that looks dead on the iPhone in it’s own attempt at an iPhone killer. Yet have you seen this running anywhere besides on that JavaOne stage in 2007? Sun released an API for JavaPhone, but it seems to have went nowhere - as embarrassingly indicated by the fact that the graphics on the Overview page don’t even load.
You may also counter with Google’s Android. However Android is JINO (Java In Name Only) and can’t claim the use of any standards from the mobile industry or Java. It has it’s own runtime and compiler. You could argue you did get the Java developer base here, but that just feeds in to my third argument below. I agree with Google/Danger’s approach though, since I believe that to program in the mobile space you need, to borrow a buzz word, a Domain Specific Language with constraints and customizations to the device that you are targeting.
The False Write Once Run Anywhere Argument - Now Context Is Key
This carries me in to my third point that both Nokia and Ross miss - you do have to think differently when writing an application for a mobile platform. Carrying over Java developers from the desktop environment (or more likely and worse - the server environment) to the mobile platform with the same paradigms is a recepie for disaster, if just because they will demand and create the same experience on the mobile platform. (Think Windows CE circa 2000 when it had the Start button in the same place as the desktop operating system).
This is evidenced by the predictable cries from these very same developers when it came out that the iPhone SDK allowed for no access to background threads. The need for this paradigm change is real and was expressed very elegantly by Craig Hockenberry of IconFactory fame in his blog entry Brain Surgeons,
Twitterrific on the iPhone could definitely make use of a background process to gather new tweets. In fact, a prototype version of the software did just that. And it was a huge design failure: after doing XML queries every 5 minutes, the phone’s battery was almost dead after 4 hours. In fact, the first thing I said after giving Gruber this test version was “don’t use auto-refresh.”
The heart of the problem are the radios. Both the EDGE and Wi-Fi transceivers have significant power requirements. Whenever that hardware is on, your battery life is going to suck. My 5 minute refresh kept the hardware on and used up a lot of precious power…
…It takes several months of actual iPhone development before you eventually realize that the iPhone requires a completely different mindset. Until that happens, you’ll make assumptions based on desktop experience, and that in turn will lead to a lot of bad designs.
Java - even in runtime philosophy - looking out over the horizon - is poorly matched for the new environment in which we find ourselves. You can even extend this argument to any software not written to a platform’s context, as Gartner recently wrote in regards to Windows Vista and the problems of it’s monolithic OS approach. They want Windows kernels targeted to what is essentially contexts. Add to this argument the activity going on in the mobile/UMPC space and this argument against both Sun’s Java and Microsoft’s Windows/.Net approach becomes even more compelling. No one can play with a Sony UMPC running Windows Vista at your local Best Buy and come away arguing that it fits in to the user experience and context.
I don’t hold out a lot of hope of a iPhone-esque compelling experience from any developer writing in the JSE or JME space on this “iPhone killer”. I highly doubt anyone would look at low level API access of UIKit and Foundation that allows for incredible visual control over an application, and then look at what history would tell us Java would come up with, and not pick Apple’s approach.

April 13th, 2008 at 2:22 am
Great entry and you’ve hit upon many points I feel like I’m always bringing up — the iPhone is the total package and you can’t “beat it” by putting it on a feature comparison chart and going down the list. More consumers (non-geeks) are using the iPhone now when they would never have looked twice at a Treo or Blackberry in the past, and that means something. It means that consumers don’t care if it’s running Java or Linux or iPhone OS as long as the experience is perfect. Because Apple makes the hardware and the software, they can ensure that the experience is butter whereas running Java on a half-baked Nokia device will never be an iPhone-like experience.
April 13th, 2008 at 2:35 am
Hmm…. some good points but get dispersed in too many words. Let me sum up why I think that Java on the “Tube” is a good thing:
1. J2ME has its problems, and you properly mentioned them.
2. Even though it will be difficult to have a “cool” experience with J2ME midlets on the Tube, at least you can write your own code freely. With Apple you just can’t, unless you do things in the Apple way and distribute them through the Apple store, which is a complete nonsense for small business - for instance I could write midlets for my personal use or for a small client with a handful of clients. It’s better to have something than nothing, IMHO - of course I don’t consider JailBreak and other stuff as a serious approach. You probably sacrifice part of the user experience, a thing that in future could be fixed anyway, but there are customers more interested in features than bells and whistles. J2ME doesn’t ruin the bell and whistles that comes with the phone by default.
3. But above all I don’t have to learn a niche language/technology such as ObjC, instead I can reuse my huge knowledge about Java. And I don’t get an Apple-purportedly reduced control on the thing (e.g. with the iPhone SDK you can’t have a custom application running in background, which means it gets stopped when a phone calls arrives, while with J2ME you don’t have such problems).
To me is more than enough to say that J2ME is far from the perfect world, but still the better of the worlds around.
April 13th, 2008 at 5:51 am
Anyway, Nokia intention is to kill iPhone by the features so don’t blame them because of the UI only, in my personal opinion adding the touch option to S60 platform is the great move and it also important o say that there will not be the code break and 5th edition will be backward compatible!
Speaking about iPhone, well, it was already discussed numerous times and I am not interesting in opening the same discussion again, it is completely pointless, its hard to say something about phone that lacks file manager for example, phone that lacks cut/copy/paste feature or isn’t capable to process crappy MMS format or record video in 3gp format at least, or phone that has BT but can’t send a files over it, will stop it here as I haven’t enough time to count all cons, crap is crap and that’s it.
As the internet tablet it is great device, but if you gonna use it as the phone it is nothing but the crap, but general public won’t know that and most of them won’t even realize that when they actually buy one.
The iPhone brings nothing new to the market, except multi touch of course, actually, if it brings anything new, its the look, and honestly, slim and sleek design has been seen before, and it will be done again, Prada is nice example and it going to be even better and better equipped phone with more features.
Price, size, weight, height, width, design, brand, OS, who really care, features before all and in terms of features it simply *, it’s a piece of **** with nice screen over it and extremely good marketing behind it. . .
You should read my S60 5th gen related article for more about interface itself:
http://www.symbian-freak.com/news/007/12/nokia_world_2007_s60_touch_ui.htm
Teo
April 13th, 2008 at 2:13 pm
Wow, easy there, Tiger! You basically wrote a dissertation in reply to a simple news report, and I evidently have far less interest in this than you do. FWIW, I carry an iPhone, and I’d say I’m at least adequately aware of what it is and how it fits into the big picture. The simple fact is, the iPhone was delivered locked and Apple was anything but accommodating to third-party developers. You can try to spin this any way you like.
Apple fanboys everywhere can get as defensive as they wish, but I’ll put my money on the Nokia bet in the long haul. Nokia ships 50 times as many devices as Apple does, and their devices will eventually have whatever features consumers are demanding. It may not be the Tube, but you can be sure there will be a Nokia device before long that satisfies, and it won’t have a chastity belt that only Steve Jobs himself can unlock.
Rick
April 13th, 2008 at 2:42 pm
> I don’t have to learn a niche language/technology such as ObjC
I’m sorry, but “objective c” doesn’t qualify as a “niche language”, not to mention ObjC has three huge advantages on Java (or any other language, for that matter) in Apple’s point of view
* Apple already has developer tools for it. Which is why before the iPhone SDK is even officially released it already has an IDE and all the bells and whistles of an 8 years old development platform
* OSX developers know Objective C, and they’re the ones whose UI approach are the closest to apple, thus the ones most uniquely fit to build iPhone applications
* iPhone development will force more people to learn Objective C, and learning Objective C will make those people potential OSX developers
April 13th, 2008 at 3:08 pm
Sorry, but ObjC _is_ a niche language: it’s not a matter of tastes or whether it’s superior or inferior to Java or other languages. It’s an objective (pardon the pun) matter of number of developers. For the rest, iPhone belongs to the Apple family and of course there will be a lot of developers that, being in that family, will happily use their Apple and Mac OS X equipment for the job. Somebody who will have to or desire to get in the iPhone market will eventually buy some Apple equipment to do the job, but I don’t expect to see huge amounts of people going that way. Java, C++ and C# have excellent IDEs, mature since years, by means of whom they can develop for the whole world of IT without asking for Job’s permission and people won’t just change their way of working (and invest quite a lot of money) for the iPhone.
April 14th, 2008 at 2:35 am
When it comes to languages, we obviously need many of them since the needs vary. The days when we wrote all in C are gone many years ago. While mentioning DSLs in your blog, for manufacturers it does not make sense to tie a DSL to a single device only but to a family of them (see e.g http://www.metacase.com/cases/nokia.html). For end-user development and making your own apps you could consider again own language that hides the unnecessary complexity like http://www.metacase.com/phone_example.html.
April 14th, 2008 at 1:03 pm
I strongly disagree with this posting. True, at the moment mobile platforms are too different from each other to make the WORA approach worthwhile, but just as with desktops and servers - this will change. The same could have been said about AWT and the various windows toolkits on desktop OS’s ten years ago, but then Java’s performance improved and Swing came along with its pluggable LAF, and now you can write a desktop swing app (in Java, JavaFX Script, Groovy, Scala or any other JVM language) that looks amazing on various platforms. As a certain technology progresses, it matures from a stage of innovation to a stage of standartization. The Java people are always looking ahead - sometimes there are miscalculation that need to be addressed later, but on the whole, the Java philosophy is right.
April 14th, 2008 at 5:26 pm
I’ll reserve judgement on Nokia’s approach as you can never say never in a dynamic field such as mobile telecom. But we can speak of the mobile space’s recent past and its present. J2ME has been in the mobile space for how many years? Nearly 10. But it hasn’t quite owned the consumer experience the way the Iphone has in less than 1 year of its release. For the record, I still have my old trusty Treo 650 but the Java experience on most phones have been less than satisfactory, visually and performance-wise. You certainly feel the lag and long load times even on phones with tiny screens. Someone mentioned that Obj-C is a niche language. Sure, it doesn’t have as large a userbase as Java but its trivial to learn and its closer to the metal than Java’s top-heavy VM approach which gives it a superior experience thus far on the I-phone. It helps that it is C with a thin layer of Smalltalk style OOP, this gives it a good blend of developer productivity and application performance. With that said, my main criticism of the Apple approach is its rather heavy handed distribution platform. Control is not something Cupertino gives up easily. Developers need room to roam. Anyway, looking forward to when the first tube and android phones ship. We’ll have lots more to say I’m sure.