Apple sneaks Java support onto the iPhone

Apple sneaks Java support onto the iPhone

Summary: Despite public comments by Steve Jobs that "Java’s not worth building in [to the iPhone]", it turns out that Apple did just that by using an ARM-based CPU that supports Java natively. Programmers cannot (yet) take advantage of this, but Apple could, if they wanted, ship a software upgrade to enable it. Small, efficient, hardware-accelerated Java games and multimedia for your iPhone could be closer than you think.

SHARE:

Despite public comments by Steve Jobs that "Java’s not worth building in [to the iPhone]", it turns out that Apple did just that by using an ARM-based CPU that supports Java natively. Programmers cannot (yet) take advantage of this, but Apple could, if they wanted, ship a software upgrade to enable it.

Apple sneaks Java support onto the iPhone

Shortly after the iPhone went on sale, hardware enthusiasts started tearing into them to see what made them tick. They found that the iPhone is using an ARM1176JZF-based processor, probably the Samsung S3C6400 that operates at 667MHz. This chip sports an embedded Java acceleration engine called Jazelle. From the ARM web site:

ARM processors traditionally support two instruction sets; ARM state, with 32-bit instructions and Thumb state which compresses the most commonly used instructions into 16-bit format. The Jazelle technology extends this concept by adding a third instruction set, Java bytecode, to the capability of the processor, together with a new Java state.

ARM licenses the Jazelle Java Technology Enabling Kit (JTEK) to companies like Samsung and Nokia for use on phones and Blu-ray players. Jazelle provides high performance Java in up to 8x less RAM compared to software only approaches. Thanks to its recent acquisition of SavaJe, one of the licensees of this technology is Sun Microsystems (you may recall that the SavaJe portfolio forms the basis of JavaFX Mobile).

Another cool feature of Jazelle is its Multitasking Virtual Machine (MVM) technology. Desktop Java developers have been asking for this for years. Simply put, it's a way to optimize running several Java applications at once with minimal overhead. Instead of the JVM starting up when the user plays a game or invokes some other Java application, the MVM is designed to start up when the device is switched on, run continuously and be transparent to the user. Each application is executed as if it were running on its own virtual machine, and isolated from the other applications.

Now, if Apple can just get over its anachronistic "Java is heavyweight" beliefs, then small, efficient, hardware-accelerated Java games and multimedia for your iPhone could be just a software upgrade away.

Topics: iPhone, Apple, Mobility, Open Source

Ed Burnette

About Ed Burnette

Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has written numerous technical articles and books, most recently "Hello, Android: Introducing Google's Mobile Development Platform" from the Pragmatic Programmers.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

12 comments
Log in or register to join the discussion
  • Now if only there was a way of installing apps on the iPhone...

    Opera mini is one step closer to the iPhone!
    Scrat
  • Message has been deleted.

    charles656oio@...
    • . . . and what does this have to do with Java? (nt)

      nt = no text
      CobraA1
      • spam

        plain and simple
        John Zern
  • Sloppy with words, or just lazily taking vendor claims?

    "...8X less memory..." is moronic. Suppose 100 MB is required for other approaches. 8 times 100 is 800MB, making it magically free up 700MB?

    Maybe "only needs one-eighth of the memory" was meant (7/8 less). If so, why not just say so? Everybody would understand that. But you can't be sure... "1/3 less" means "only 2/3 as much", i.e., the two numbers add up to 1.0.
    WaltFrench@...
    • Common usage

      "n times less" commonly means 1/n of whatever you're measuring. A Google search of "times less" gives over a million results, which is over 100 times less than what you get when you search for "fruit". :)
      Ed Burnette
  • MVM

    I hope the mvm is used to its fullet potential
    http://unlimitedfreecalls.blogspot.com
    kevencage
  • RE: Apple sneaks Java support onto the iPhone

    Java is really heavy and extremly slow to develop apps. I have seen tons of proyects going from 6 months to 1 1/2 years.

    Its a gd call to not use it.
    mxvampire@...
  • If the iPhone gets Java, I'll be buying my first iPhone right away

    I develop a lot of software in Java. I looked at Objective-C and find it very unintersting, but would like to develop games and applications in Java, a language I know very well, to run on the iPhone.

    I think Apple would be very smart to enable Java support on the iPhone because it would mean that the number of games and applications would increase exponentially in no time at all.

    It would also be the ruin of Microsoft.
    AnonymouseCoward
  • RE: Apple sneaks Java support onto the iPhone

    Well it is now possible, so prepare your wallet :).

    I quite agree with you about Objective-C. And I may
    add that XCode is really no match for Eclipse!

    I'm using FlexyCores's iSpectrum, and although I need
    a mac and XCode, I don't use it to develop. I stick to
    my old Eclipse friend :). XCode is there to compile
    the executable or run the simulator...

    You can try this for free at http://www.flexycore.com
    Carapuce
  • RE: Apple sneaks Java support onto the iPhone

    Well it is now possible, so prepare your wallet :).

    I quite agree with you about Objective-C. And I may add that
    XCode is really no match for Eclipse!

    I'm using FlexyCores's iSpectrum, and although I need a mac
    and XCode, I don't use it to develop. I stick to my old
    Eclipse friend :). XCode is there to compile the executable
    or run the simulator...

    You can try this for free at http://www.flexycore.com
    Carapuce
  • java now vs past

    bad experience with java is caused by 2 reasons:
    1) java was slow, but java 1.6+ is fast close to native languages
    2) Java is flexible. bad programmers contributed to the mindset of many people due to abusing such flexibility.
    nyhusain@...