back to article Java won the smartphone wars (and nobody noticed)

Haven’t you noticed? Java, the red-headed stepchild of the phone world, has conquered the world by default. The platform written off just a few years ago as bloated, cumbersome and inefficient is now inescapable. It’s actually down to desperation by the two fallen stars of the handset world, Nokia and RIM. Android, another …

COMMENTS

This topic is closed for new posts.
  1. Christian Berger

    Actually it's true

    Unlike with iOS/Android/Blackberry/WPx Java ME actually works and even has a moderately sane software distribution model. You just plop the file onto your device and you are done.

    1. Irongut

      Re: Actually it's true

      And that is different to Android how?

      1. Anonymous Coward
        Anonymous Coward

        Re: Actually it's true

        Nice downvotes for a valuable comments.

        A java app has a single file copied to the phone handset, which can then be opened from the phone menu and just 'runs'. In many cases there are no other files used, unless it's a game or application that requires saved information; even then, there are now ways to save within the one file.

        Android et al require directory structures and also require the file copied to actually be installed - the file is just an installation file.

        For developing countries the above is a big bonus, not everybody has a PC in Africa, China and parts of Russia. Those people often require technology we used 10 years ago in mobile phones.

        1. Steve Todd
          Stop

          Re: Actually it's true

          And that's different from an Android APK file how? (hint, APK files are renamed ZIP files just like Java JAR files)

          Neither Android or iOS require the user to have a PC. You can pick an app from the store and have it download and installed directly. Java makes life harder in this case.

    2. Anonymous Coward
      FAIL

      You Must Be Kidding

      All the J2ME implementations I have worked with had severe quality issues. Nokia's were the best, but even they had things like "cannot use a UDP socket to send and receive; must use two different sockets". Not obeying these rules would lock up the whole phone. Other vendor's J2ME runtimes were even more broken.

      So Nokia and all the other "old" phone vendors just had 0% software competence. Their goal was to sell units, generate cashflow and then forget the phone and its software.

      That is why Google and Apple eliminated them in a few years - they knew how to maintain software in the field.

    3. Daniel B.

      Re: Actually it's true

      Blackberry has always been Java; the BB stack is an extension of J2ME. It's part of what made it non-sucky. :)

    4. asdf
      FAIL

      Re: Actually it's true

      And in addition Dalvik actually allows a developer to write the app they want instead of having to use the complete joke gimp that is Java ME. The article doesn't address just how much different things would be today if Sun/Oracle's retarded artificial market segmentation hadn't insisted on the Java SE not being allowed on smart phones. The platform would really have been ubiquitous then.

    5. Anonymous Coward
      Anonymous Coward

      @Christian

      Actually what you're describing is only partly true.

      Yes; you could easily create a midlet buy merely compiling your ME project in, say, NetBeans (personal favourite of mine). But with all the phones I worked with you could /not/ simply distribute it onto the phone like you could, for example, a war file onto a J2EE (Glassfish) server. Even if your phone would be recognized as USB storage.

      Instead you had to make it available online, use the phone's browser to get to the program location (which always took /2/ files; one description explaining the whole online setup (you always needed to set this up /manually/) and the actual midlet itself) and only then would the midlet actually install.

      I can't comment on Android because I don't use it, but its by /far/ as easy as some other development systems do this.

  2. Dr Trevor Marshall
    FAIL

    "get their phones to last to teatime"?

    I have a Galaxy Note N7000, and in standby, running GrooveIP and K9 push-mail, it draws about half a percent per hour on WiFi and 2% per hour on 3G (depending on celltower proximity). When running apps, 90% of the battery drain is the screen, which has nothing to do with Java.

    I don't agree that Java is battery-hungry. Sloppy coding is battery-hungry.

    Oh, I do have Samsung Media Hub, and all the other nice Samsung bloatware, disabled (frozen with Titanium Backup). Still using Gingerbread -- at least until they can make ICS drain less than 1% per hour (LOL)

  3. Anonymous Coward
    Anonymous Coward

    What you really mean is Java won the application programming environment war. Android is mostly native code. Guess what the Virtual Machines are written in? C++. Further down the stack is C.

    Java performance has improved over the years, but its also become a target for hackers too.

  4. Anonymous Coward
    Anonymous Coward

    and I still get 3 days of mail & web with this E71 and its 5 year-old battery. No cool, no touch screen but a fine keyboard and fits well in my jeans.

    But it does lack USB charging - arguably THE killer app for modern smartphones since it makes charging somewhat incidental to syncing and it's easier to carry a cable than a wallwart.

    1. Anonymous Coward
      Anonymous Coward

      E72?

      Mine's solid as a rock, charges by USB and lasts a good 4-5 days of heavy duty use on a single charge (1hr+ on calls, texts, emails, internet, MP3 playing).

      Battery is now 2 years old.

  5. JDX Gold badge

    Presumably this is why WindowsPhone surprising runs so well on low-spec hardware... not that MS suddenly learned how to write fast code, but that Android is a bit slow compared to a C/C++-based OS?

    What about iOS though - isn't OBJ-C also a fast compiled language?

    1. Sean Timarco Baggaley

      Obj-C is indeed a fast compiled language. It does have a runtime component that handles the messaging and reflection aspects, but Objective-C is also a pure superset of C, so you can write C code too. It's "C with OOP" done right. (Yes, C++, I'm looking at you.)

      Java? Meh. I've had reason to use it in the past and it's everything that's wrong with BDP*: you're endlessly subclassing and subclassing just to get even the most trivial of things to happen. Look at how much easier it is with Objective-C (and Cocoa) and you'll soon be wondering precisely which fresh circle of hell Java and C++'s designers will be given when their time comes.

      The main reason I stay away from Android is because its development tools are so poor and the ROI is terrible. Eclipse is no substitute for a proper IDE that doesn't suck.

      * ("Buzzword-Driven Programming".)

      1. xperroni
        Boffin

        A little bad rep goes a long way

        Early Java programmers were kind of over-excited with this inheritance thing, and tended to overuse it, as evidenced in many books and frameworks from the time. Today the Java community favors composition and interfaces (which enable much more flexible architectures) over class inheritance – but I guess that for those who haven't kept up, the damage is already done.

        I agree that Enterprise Java is hopelessly cluttered with buzzwords and decrepit FUBAR frameworks (hello TIBCO), but I have always found the Java language and its base API very straightforward. In terms of ease of use it runs rings around C++; performance might not be as good, but as in the case of scripting languages, it's often good enough that having something that works now trumps having something perfect later.

        1. Anonymous Coward
          Anonymous Coward

          Re: A little bad rep goes a long way

          @xperroni: Too right. I still endure the flashbacks to a time I once looked at a team-mates project code that sported factory-fascade-subclassed-abstract (not an exact structure you understand) nonsense. I point out it wasn't very readable and made debugging problems a pain in the arse with its interwoven "where's it implemented" bs. He retorted that this was "enterprise level strategic coding" and I should get back to my simplistic tactical World.

          I've never forgotten that spaghetti mess and will probably never return to Java as the damage has been done. I moved on to the (shock horror) other Java-like language and prefer it.

          1. xperroni
            Gimp

            Re: A little bad rep goes a long way

            It's alright. It's not like I'd want to use it or anything, but I worked on a C# project a few years back, and as far as Microsoft products go, I found it particularly hard to hate – harder than VB6 at any rate.

      2. ian 22
        Windows

        @Sean Timarco Baggaley

        Not sure whether to up vote or down vote your post.

        I'd up vote you for the remark on the horror that is C++, but down vote on the java critique. Loved java, hated C++, never found found sub classing a problem in my Java code, but have encountered C++ code with endless levels of subclasses.

        C++ made me crazy and old before my time.

  6. auburnman
    Joke

    Accenture working on bug fixes

    Has it been made ABSOLUTELY CLEAR to them that by 'fixing bugs', it is meant that the bugs should be corrected so that they do not occur, as opposed to improving the bugs so that they do more?

    1. Anonymous Coward
      Anonymous Coward

      Re: Accenture working on bug fixes

      Teams have been disbanded and knowledge transferred, so no.

    2. xperroni
      FAIL

      Re: Accenture working on bug fixes

      Has it been made ABSOLUTELY CLEAR to them that by 'fixing bugs', it is meant that the bugs should be corrected so that they do not occur, as opposed to improving the bugs so that they do more?

      You mean them hacks could actually correct bugs if only management told them in clear terms that's what's wanted?

      Either way it's hopeless.

  7. Steve Todd
    Stop

    The last time I checked

    Nokia + RIM < 20% of the smartphone market. How does that equate to Java winning the smartphone wars?

    Android is only a Java-like platform (and has the results of a court case to prove it)

    iOS is based on Objective C/C++

    Combined they own the other 80% of the market and look like the winners to me.

    1. Anonymous Coward 101

      Re: The last time I checked

      I agree the claim was overblown, but Nokia still sell loads of their S40 based phones around the world. I suppose other mass market manufacturers sell loads of Java based phones as well.

    2. toadwarrior

      Re: The last time I checked

      Out of mobiles in total smart phones are the minority and afaik java me is still the primary language for dumb phone apps so in theory it has a larger market share. I'm not sure who buys apps for dumb phones these days though.

      1. Jean-Luc
        Joke

        Re: The last time I checked

        >Out of mobiles in total smart phones are the minority and afaik java me is still the primary language for dumb phone apps....

        Might want to check the title of this article again.

    3. CheesyTheClown
      Angel

      Depends on the definition of a smart phone

      Symbian and Symbian Lovers (which Andrew has always been a bit guilty of) considered the Series 60 platform to be a smart phone operating system. Nokia made it possible for every grandmother on the planet to get a Series 60 telephone with a large keypad for free with a cheap 12 month contract (or is it cataract hehe) and therefore, if you consider that installing Series 60 onto a telephone which eventually ends up with a consumer in the end a smart phone, then Nokia probably has 3/4 of a billion units out there. Those phones however were generally preferred over the Series 40 for grannies because they had a screen which made dialing all 3 people they called by mobile phone easier. I personally have 4 or 5 Series 60 phones I used for trying to test application development on... got them for like 10 euro unlocked from junk bins weeks after they were released.

      I have seen a handful of people with Nokia "Smart Phones" being carried by the same cheeky looking people who do things like wear a noose to work because it's the only way they can show they're important. The same types of people who carry blackberrys in the states.

      Just remember, Nokia isn't the "Granny Phone Company" for no reason.

      P.S. - If Nokia wants to start trying to be a lot less lame, they should dump their entire "Big Button Phone" portfolio which pays their bills and get rid of the lame assed fat guy who thinks he's cool on stage when it comes to presenting the phones. The fact that he says it's cool and hip and such is enough reason to call them lame.

  8. Tony Green
    Unhappy

    A pity though...

    ...because Java is the one language I've programmed in that I hated every minute of.

    What a relief Android (maybe others, I haven't looked yet) can have pretty rich HTML5 apps with the SQLite database engine to provide storage. A whole app with only a dozen lines of Java.

    Now if they'd only put Perl on them all...

    1. tony2heads
      Linux

      re: next disaster will be:

      check out

      http://code.google.com/p/android-scripting/

      There IS a perl interface (but I have only tested the python one)

      1. Vic

        Re: re: next disaster will be:

        > There IS a perl interface (but I have only tested the python one)

        I've written some perl for mine.

        It takes a little finding-your-way-around, but it's a good setup. Documentation's a bit poo, but the demo app tells you pretty much all you need to know...

        Vic.

  9. Blunderbuss
    Joke

    Java won the smartphone wars (and nobody noticed) .

    Or in the context of smartphones: Java won the smartphone wars (and nobody cared) .

  10. Graeme Sutherland
    FAIL

    The reason Java failed

    The main reason that J2ME failed to gain traction in the early noughties was due to platform fragmentation. An app that would run fine on one device would lock up on another, and every handset manufacturer would have a different API for audio functions. The bulk of work would be porting code between phones.

    On top of that the operators would only allow sales through their individual stores, and would take the bulk of the revenue for the privilege. Then there was a (now-defunct) games publisher notorious for not paying its third party developers. The economics didn't add up.

    What's changed things is Apple's app store, which has allowed an ecosystem to build up around the iPhone. This has been largely copied by other platforms, some of whom use Java based platforms.

    1. CheesyTheClown
      Devil

      amazing how...

      every Java app I've downloaded for ages (computer based, server based, phone based...) is generally released with a different version for each platform. It's crazy how the write once run anywhere turned quickly into write once, run anywhere so long as it has this OS, this browser version, this Java version etc...

  11. ratfox

    Huh? Nokia, RIM?

    You are seriously basing your argument on the fact that Nokia and RIM, who are both fast becoming irrelevant, have turned to Java?

    It's a bit like saying "Tories have won the elections" because two small, remote counties have voted for Tories…

    1. TheRealRoland

      Re: Huh? Nokia, RIM?

      Funny how people only look at the US market, when making broad statements.

      RIM is doing pretty well in the 'developing markets' (or whatever negative euphemisms analysts use nowadays) such as Asia, Africa.

      Lower-spec phones with a good OS are still good phones for what they need to do in those areas.

      Not everywhere is the phone system as 'advanced' as in the US / Europe. And not everywhere in the US / Europe is the phone system as 'advanced' as in other parts of that same area.

      The fact remains that a large number of phones use one form or another of Java.

    2. Jemma
      FAIL

      Re: Huh? Nokia, RIM?

      ....And your point was...?

      Last time I looked that was precisely what had happened - leading said to go cap in hand to the liberals. Dont you just love fair democratic elections based on the actual voting...

      Oh wait...

  12. AndrueC Silver badge
    Stop

    To hell with 'the market'. I care about battery life. That's why I replaced the original battery on my Desire with a 3aH monster. Okay so it doubles depth of the phone but since it's stepped in a bit I find it actually makes it easier to hold. It also means that the phone props itself up when sat on a desk sideways which is nearly perfect for watching videos.

    As for batter life: Damn near a week between charges for me. Admittedly I don't make or receive many phone calls nor browse the web. However I do use it for an hour every day to play music and when I drove to North Wales a couple of weeks ago it powered the GPS for the entire 3.5 hour journey. The battery indicator was red on arrival but it managed it.

    Sadly it seems that newer phones are all one piece shells so the options for replacing the batter are limited. Guess I'll just have to stick with my Desire instead of giving more money to HTC. Ho hum.

    1. blapping

      you just said that out loud.

  13. Charlie Clark Silver badge

    Conclusion missing?

    How does the post demonstrate Java winning in the end? Or is just an oblique reference to victory of the Java-like Dalvik on Android? Java doesn't run legally on IOS as far as I know.

  14. Silverburn

    Jasper

    holy crap, look how old that looks. And it's only been 6 years. Progress ftw!

  15. Aidan242

    Someone doesn't know their history

    I think someone might have forgotten that RIM pretty much started out with Java, almost from the beginning, rather than tagging it on later. After all, the RIM 957 (year 2000!) used JDE for app development. The first GPRS capable device RIM launched (BlackBerry 5810) was fully Java. That's hardly adding it on at a later date "to remain competitive"!

  16. DRHowells

    "the market doesn’t seem care about call quality or battery life"

    I care very much about battery life, its just the phone producers seem to think we don't. I would much rather a thicker phone with a great battery than the thinest phone in the world (which is what the all try to do) and have to charge it multiple times a day. I used to have a P800, otherwise known as 'the brick'. It was a massive chunky device, but at least the battery was decent.

  17. [My Handle]
    Happy

    > The platform written off just a few years ago as bloated, cumbersome and inefficient

    By nobody with a well-informed opinion.

  18. Anonymous Coward 101
    Thumb Up

    Does anyone else remember those tacky adverts for Java ringtones, screensavers, games, etc. that were on the back of magazines? That is something else the iPhone has robbed us of.

  19. Anonymous Coward
    WTF?

    This story makes no sense at all.

    Nokia, a long-term supporter of Java ME, continues to have an interest, but has shifted its focus to Windows mobile. Likewise beleaguered BlackBerry manufacturer RIM, who is shifting away from Java ME to a new OS based on QNX with native C/C++ as the preferred development language.

    iOS apps are mostly objective-c.

    Android sort of means Java has a presence on smart phones, but it uses Google's own proprietary and incompatible version of Java which therefore isn't really Java at all.

    1. TeeCee Gold badge
      WTF?

      Re: This story makes no sense at all.

      "....uses Google's own proprietary and incompatible version of Java which therefore isn't really Java at all."

      I was of the impression that the whole Oracle / Google shitfight was over the Java TCKs. You can't say it's "Java" without it getting the Test Compatibility Kit seal of approval and the TCKs are proprietary to Oracle, who reckon mobile devices should be restricted to the Mobile Edition and won't license 'em for testing on Android, so they're not allowed to run 'em........officially.

      Nowhere have I seen it said that Android Java won't run the TCKs correctly, only that they're not allowed to stick the magic badge on it to say that it will.

      What did I get wrong?

      1. Vic

        Re: This story makes no sense at all.

        > What did I get wrong?

        You confused Java the language with Java the VM.

        Some parts of Android apps are typically programmed in the Java language, but Android handsets have no Java VM on them. They use the Dalvik VM, which is entirely different, being a register-based machine rather than the Java stack-based one. Think Z80 vs. 6502...

        Vic.

  20. James 51

    Qt

    Is battery life the reason RIM told everyone they were going to have to rewrite all heir apps in Qt come BB10? Nokia were pushing Qt too before they jumped the shark.

  21. Anonymous Coward
    Anonymous Coward

    Simple answer...

    A quad core Android or (if you must) an iPhone for Facebork and videoing stuff, and a Nokia 8210 for (discretely) making calls on, preferably with a wired headset. (Y'know, in case anyone saw it and thought you were some sort of pauper or something.) Match book sized and 3 week battery life FTW.

  22. Ian 55

    Why I carry two phones

    Battery life. One bog simple one with a battery life measured in weeks for voice and texts, and an Android smartphone with a battery life of hours for shiny stuff.

  23. Sean Timarco Baggaley

    Call quality

    I honestly don't get all the vitriol against current phone call quality. Most of the problems are due to the networks, not the phones themselves.

    Actual call quality, in terms of sound, is no different here than it is in Viterbo or Rome. In Viterbo, I'm more likely to get a dropped call, but so is everybody else: the city is extremely hilly and there just aren't enough masts yet.

    I live in a rural part of the Lazio region, between those two cities. The geography is similar to the Welsh Highlands, with added earthquakes. I get decent enough sound quality in a large town or city, but out in the small village where I live, the signal is dire. I don't even get an "E" symbol on my iPhone 4, let alone a "3G": it's just plain old Mk. 1 GSM.

    But I had far worse problems with my Nokia 6310, which was literally the cheapest phone I could find with Bluetooth support. Nokia had a reputation for great call quality, but my iPhone 4 sounds a hell of a lot better than my old Nokia ever did. (And it's better at finding a signal too, which gives the lie to that "Antennagate" bollocks.) I've noticed any notable difference in sound and call quality with my brother's Samsung and his wife's LG. Both are pretty old "feature phones", bought around 2009.

    It doesn't help that many landlines in Italy have been converted to Telecom Italia's awful VOIP system. Phoning a landline today often results in a nightmare of blips, clicks, dropouts, and weird Autotune-esque audio artefacts. Phoning a mobile usually sounds a lot better.

    Battery life? Okay, I'll grant that I'd like my iPhone 4 to last more than a day, but 24 hours is a pretty good battery life for what is, after all, a computer more powerful than any of the desktop PCs you could buy just ten years ago.

    1. Dan 55 Silver badge
      Facepalm

      Re: Call quality

      There are a few differences between the audio codecs supported by the 6310i, released in 2002 and the audio codecs supported by the iPhone 4, released in 2010...

  24. cneth
    Unhappy

    The Jasper actually shipped - just.

    Thanks for posting the picture of the Jasper. The caption is not quite right though - it did actually ship in Hong Kong, albiet in very low volumes. But it was too little, too late, the company failed a few weeks later. I still have a few "mint in package" Jasper's under my desk...

  25. Anonymous Coward
    Stop

    Java Is Crap, And Holy Steve knew It

    Java's GC will kill user experience due to unpredictable freezes of the UI, just when it is inconvenient to the user. In addition to that, neither SUN nor its licensees managed to release high-quality implementations of J2ME. It is much, much more broken than J2SE, and that is already a mess, quality-wise.

    So the iphone going with a C variant was one of the smartest decisions. Sooner or later the Googlers will realize that too and rip Java out of Android.

    1. 130R

      Re: Java Is Crap, And Holy Steve knew It

      There are already predictable garbage collection algorithms for java. If you are getting "unpredictable freezes" it's because you don't know what you are doing.

  26. Anonymous Coward
    Anonymous Coward

    Eh? What did Java win?

    Android has most of the smartphone market share, and app development on Android really only took off when they made it possible to run native code. If anything, the Android developers I talk to resent having to use Java to make their UIs.

    iOS might as well have the rest of the smartphone market share and Objective-C is just C/C++ with some extra object goo.

    So I'm unclear on how Java won anything...?

    1. Anonymous Coward
      Anonymous Coward

      "Objective-C is just C/C++ with ..."

      Sorry if I sound like a pedant but OC is definitely not C++ with anything - and most of those who know a bit about the principles of programming languages feel that that's a big plus in itself (pun intended).

      1. Anonymous Coward
        Anonymous Coward

        Re: "Objective-C is just C/C++ with ..."

        I think you'll find that if you rename your .m files to .mm you most certainly can use all the C++ features along with Obj-C features simultaneously.

  27. 130R
    FAIL

    Most of you need to learn the difference between java and the jvm before posting

    1. Anonymous Coward
      Flame

      Oh Really ??

      The Java language and the JVM are two different sides of one coin. The incredibly inflexible one-size-fits-all approach of Java more or less dictates the structure (as opposed to the implementation) of the JVM.

      I can't have destructors (so all the places which leave a method have to clean up a resource allocated in that method), I can't have value arrays, I can't have non-primitive data on the stack (pointers to objects are also primitive), I cannot have reference.counted pointers, I cannot even be soft-realtime.

      So there is the SUN JVM, there is Dalvik and there is gcj, but they all share serious deficiencies which are similar and which are rooted in the concepts Java is based on.

      Why do I need to create GC load by handling pointers ? Strings will never be cycling data structures, but one-size-fits-all dictates that there cannot be reference counting for these. Even if it could be proven that only a single thread will ever access them.

      Java is a FAIL as much as SUN is a FAIL.

      1. Neil C Smith
        FAIL

        Re: Oh Really ??

        hmm .. trying to work out if there's anything true in that comment .. not looking good so far!

  28. Anonymous Coward
    Anonymous Coward

    Java won the smartphone wars (and nobody cared)

    Just correcting the title ...

  29. Tom 7

    Thank the noodly for necessitas

    C++ on android - relax.

  30. FoggyDC

    ARM Machine Code

    Whatever happened to all those genius programmers who wrote fast, efficient and small programs for the Acorn RiscPC? I am so surprised that something based on RISC OS is not the definitive phone OS. Imagine being able to program your phone in BBC BASIC!! After all the original designers of the ARM chip also wrote the BBC OS and BBC BASIC. Ahh memories!

This topic is closed for new posts.

Other stories you might like