Newsletter sign-up
View all newsletters

Sign up for our Enterprise Java Newsletter

Enterprise Java
JavaWorld Daily Brew

Android becoming ever more unmoored from Java


 

Android has always held a weirdly ambiguous position in regards to Sun's official Java. On the one hand, applications written for Android are written in Java code, and so the platform's popularity can only help reinforce Java's popularity among developers. On the other, Android's VM is based on Apache's non-Sun-certified Harmony, which means it doesn't carry the Java brand (and the lucrative licensing fees that go with it); in addition, because Harmony is a tweaked Java SE implementation, code written for Android doesn't match up with the Java ME standard that Sun would like to see be the default for mobile device development. It's no wonder Sun's official Java ME bloggers tend to slag on it.

Because of all this, Android isn't that tied into Java as an aspect to its identity, despite the buzz about its appeal to Java programmers when it was first announced; after all, it's not really so much a "Java phone" as it is a Linux phone. That's why Google can take steps like the one announced last week, which will open up Android to C/C++ code running on the phone's processor. Now, this is admittedly just based on the JNI functionality already in place in most Java SE implementations, but it could be the start of a trend. It's also worth noting that Google is releasing a scripting environment that will allow developers and even end users to run Python and Lua code on Android. It also seems that other VM languages are coming; IBM's developerWorks has a tutorial on running Scala apps on your Android phone.

It's possible that Android would have taken this road eventually anyway -- after all, the appeal of a Linux-based system is its flexibility. But I can't help but think that Android was a lost opportunity for Java, and is becoming more so by the day.

hmm your post sounds like a

hmm your post sounds like a lot of hot air

Dude. Get over it. Android

Dude. Get over it. Android is not about Java. They just used Java the language becoz their were a brazillion programmers out there. Android is about the following:

1) Killing Sun by not paying their Java ME licensing fees
2) Killing MS by showing how bad WinMo really is
3) World Domination.

Android's VM

The Android virtual machine is NOT based on Apache Harmony. The Android VM was designed and built entirely by the core Android team and works quite differently from the JVMs as we know them. Android does however use the Apache Harmony implementation of the core java.* packages (java.io, java.net, java.lang, etc.)

Scala=Java Platform In fact,

Scala=Java Platform

In fact, it even compiles to java bytecode.

Java (the language and platform) needs to evolve, and it's doing so. Nothing scary about that.

I expect the Java platform and most like the Java language (with tweaks) to be alive and well several decades from now ;-)

In fact, Im sure it'll outlive me, and I'm not that old....

Diversity is good, but...

I don't know the Android platform, but if I were to take the plunge into writing apps for a phone I would write for it long before I would ever consider the iPhone.

That said, I would hope that I could reuse standard Java that I and others have written for JSE/JEE apps.

Scala is good too - I am considering learning/using it for heavily concurrent logic.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <p> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br /> <br> <strike>
  • Lines and paragraphs break automatically.
  • Use <!--pagebreak--> to create page breaks.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options

CAPTCHA
Just checking to see if you're an actual person rather than a spammer. Sorry for the inconvenience.