Oracle's Newest Move To Undermine Android
GMGruman writes "Oracle's decision to shift focus from the Harmony Java open source project to OpenJDK seems innocuous enough — but InfoWorld's Josh Fruhlinger explains it's part of an effort to derail Google's mobile Android OS by gutting the open source project that Android has been driven by. IBM has signed on, apparently in return for getting the Java Community Process reactivated, leaving Google in a bind."
Google is full of smart people. I'm sure they saw this move - and the entire assault on mobile Java and derivatives thereof - coming long before Oracle started their anti-Android crusade. I'd be willing to bet that Google has something new 'brewing' for Android 3 that will leave this whole mess behind. You just don't get that many programmers together without a few being paranoid enough to have planned an 'escape module'.
Forgive the layman here, but why can't Android simply switch Java platforms as well? Open is Open, no?
Did this surprise anyone?
Let us all remember that ORACLE stands for "One Rich Asshole Called Larry Ellison"
This is the company that buys out someone else and does not even bother to offer the customers a migration path. Nor any form of support other than letting you fill out a bug report they close as the product is EOL.
Can someone explain why Oracle cares about the success/failure of Android? I honestly don't know.
The success of Android means a potential 'licensing fee' from every Android install. They don't care about Android per se, they just want to charge everyone to be able to use it.
avoid the fees B.S. and just ship the 100 meg java SDK with android and be done with it. it even has a patent cross licensing clause. yes its bloated. yes developers might not use any of its features. who the fuck cares ? just ship the damn thing and keep the JVM compatible. if a nokia dumbphone from 5 years ago can ship with j2me so can an android smartphone.
Sun started OpenJDK as the project from which the GPL'ed version of Java would be created.
It stands to reason, that Sun had planned to discontinue supporting Harmony when OpenJDK was formed.
Don't mean to spoil a good conspiracy...
These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
Well I was going to read about this, but all of a sudden some Xerox jerk comes along and spills papers everywhere blocking the text of the article.
I got so annoyed I just left...thanks InfoWorld/Xerox!
He who knows best knows how little he knows. - Thomas Jefferson
We already know that Dalvik VM itself isn't like JVM. It can be mapped one-to-one (at least going from JVM bytecode to Dalvik bytecode), but the basic architecture is different.
Android also has its own rich class library, while retaining some stock fundamental Java classes. Of those some are inherently implemented mostly by the VM (Object, String...), so presumably they are also Dalvik-specific, while others have Java implementation - collections, for example. I assume the latter is what is taken from Harmony. The obvious question, then, is - how much code is that? Somehow, I suspect that it's not all that big, and so Google could just take over those bits it needs - rather than Harmony as a whole - without having to contribute significant resources to it.
What about GNU JRE? I know ORACLE owns Java when they bought Sun, but is that only Sun's implementation, or can they charge you for using free implementations, too (via patents I assume)?
Google is famous for building a piece of cool software to version .8 or so and then releasing it under open source and letting everyone else finish the work. they build some cool software for internal use but for all their consumer products they expect everyeone else to finisht the work or let a cool product like google reader languish
What licensing fee are you talking about? These JDKs and Android are both open source projects and Java and JDKs from Sun and IBM have always been free. Android isn't selling a brand name. It's not selling anything except advertising and back end services.
Very often, people confuse simple with simplistic. The nuance is lost on most. - Clement Mok
Oracle is trying to claim that Dalvik, Android's virtual machine infringes on mobile java patents. Mobile java was not included when Java received it's current "open" licensing.
And I'm sure part of the reason why Mobile Java wasn't in the "open licensing" was the carriers. That is, Sun had already extracted some money out of the carriers and met with a very nice bit of success there. Remember, before Apple's iPhone and Google's Android, JavaME was a big success in offering advanced features (that sucks compared to today's offerings). It was a big success for Sun licensing wise--something the original Java was not.
But with that money came a very, very hefty price. They had to bend over backwards to give the carriers what they wanted in order to "add value". One of those was charging developers $500+ a pop to be able to release applications for their network. Another for the developers to pay extra to access certain features (location). And another still was for companies like Verizon and Sprint to just flat out turn off certain features.
Which is why Apple didn't do JavaME (I remember being pretty bummed when they didn't)--they wanted complete control, and they would never get that with JavaME.
And Google had similar needs--but also didn't want to pay the licensing costs everyone else did.
JavaME was a money maker for Sun (unlike the standard Java VM), but the process of making money off of it made it a nightmare to deploy apps on. Development--writing code--was ok, but getting it to work on multiple headsets (nevermind multiple carriers) was a huge headache. And it was a huge headache because of all the compromises Sun made to get the carriers on board. And that nightmare (in addition to licensing costs) is why Google came up with their own VM implementation.
I used to be a big Java proponent for mobile development. I'm not anymore. But it is interesting to see how all those bad decisions (I cursed Sun weekly as I tried to wrestle another carrier or headset down) played out into what we have now.
Google didn't want to pay the money. Microsoft (via Miguel) likes to say they would have been better, but they are just as bad on the licensing (see HTC and now Motorola). Sounds to me like Google got used to their free ride on Java and balked at the idea of giving anyone a slice of their work and money on Android.
I'm not saying Ellison is not squeezing them (he definitely is), just that Google is kind of getting a bucket of cold water in their face about how the tech companies "collaborate" in new tech fields. Not "fair", but it is kind of predictable.
"Doubt your doubts and believe your beliefs." -- Switchfoot, Ode to Chin
It just happens to share Java's grammar.
and a good percentage of the java class library too
Jehovah be praised, Oracle was not selected
And Larry Ellison's good buddies with Steve Jobs. Coincidence? I think not.
Google collects a license fee from Java ME installs. Android isn't a Java ME implmenetation, obviously, and you can argue that Android is hindering the adoption of Java ME in the next generation smartphone world by absorbing the energies of the huge pool of Java programmers who might want to do mobile development. (You could also argue that Java ME was failing to catch on quite well on its own before Android showed up due to its own limitations.)
If you're interested in the background, here's an article I wrote about it a couple of months ago. (I'm the guy who wrote the article that got slashdotted, for what it's worth.)
Sergey vs. Larry.
Unix, an obscure operating system developed by bored researchers in an attempt to get a better game playing experience.
Not even that.
The Dalvik VM doesn't accept Java VM bytecode. The Java language is what all the tools work on currently for creating executable images for the VM, and precompiled class files are also converted. If someone were so inclined, Dalvik could use lisp or c or befunge in much the same way that other languages have been compiled to work on the Java VM.
Not sure that's a good comparison.
The Wii is focusing on a different crowd than the 360 and the PS3 -> casual gamers and kids. It's also quite a bit cheaper, particularly at the release of either the 360 or the PS3. Their lack focus on hardcore gaming probably says less bad about them than you...
Also, since the classic gaming systems are hard to get for a reasonable price, the Wii isn't a bad choice to get a bunch of classic games relatively inexpensively.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
Sun/Oracle holds several patents on Java technology. They will only issue licenses to these patents to implementations that pass their compatibility tests. Without this license, the source code is freely distributable, but you risk being sued if you actually use it. Harmony and other java reimplementation have struggled with being in this legal grey area for some time. The trick is you have to pay a big chunk of money to Sun/Oracle for this compatibility test. Furthermore, Android's implementation wouldn't pass because they only ship a subset of the standard library, and because they compile to a different bytecode format. Furthermore, Sun has not been as open when it comes to J2ME. Android is cutting into J2ME revenue, and Oracle are greedy bastards in general, so they would like for everyone who runs Android to pay them patent royalties.
So you're expecting a big, collective gasp as suddenly thousands of people realize Google is a company? You might want to prepare yourself for disappointment.
On a different note, Google's model seems to be more interesting than simply controlling data. They don't want control; they want visibility. They want data to flow through their systems. And they want systems that will make better use of that data. All the free services produce advertising eyeballs, to be sure. But they also provide massive amounts of test data on which Google can try new ideas and tweak useful tools. GOOG411 is a great example. Google presented the service and used it to collect voice samples and feedback to tweak their voice recognition. Now that they're to a certain point (and perhaps Android devices are providing a cost-effective alternative), GOOG411 is EOL.
They must not like your browser, it didn't do that to me. But you didn't miss much -- TFA's author was really reaching, unless I missed something.
Free Martian Whores!
It's a huge amount of code when you consider how reliant Java code is to how strings work, to how the networking classes work, to how date handling works, to how internationalization works.
Is it a huge amount of code, or a huge amount of work to get it right?
Note that there is no talk about rewriting anything. Harmony already has the implementation, and it is OSS, and will remain such even if its development is discontinued. Google would only need to fork that code and maintain it on the level of fixing bugs.
It's a great comparison because the iPhone targets the casual phone user. It's not a phone for a power user. Similar to the iPod, which doesn't even play OGG like a 30 dollar Sansa Clip. 360 and PS3 are for the power users, Wii is for the mass market.
If someone say A->B, you simply need to show an example of B->!A to disprove the statement. This example DOES NOT mean the individual is trying to say B->!A.
Self proclaimed typo king, and inventor of the bear destroying coffee table (patent not pending).
Yes! I have many secret identities!
The code is Java. Which is something Oracle can't charge you a fee for. I'm sure they'd love to. What Oracle charges for is the Java Micro Edition runtime, which Android doesn't use.
Android compiles from Java code to a Dalvik executable stored in an Android package. Dalvik is not Java.
Perhaps you ought to turn yours in. The suit isn't about destroying Android. The suit is about the fact that Google is using an incompatible VM with the Java language and trying to pass it off as Java. Which it isn't. Java is supposed to be compatible between the various VMs, even if not always perfect.
It can only be incompatible if they actually claim to be java compatible. They don't. They claim to be able to parse the java byte code, which they do. This is like ARM complaining that you can run ARM binaries in an emulator on another platform - only once more removed.
Java syntax -> java compiler -> java byte code -> compiled to dalvik byte code -> dalvik VM.
The magic happens in the byte code to byte code recompilation. Basically this means Android uses java's byte code as an object format. So unless there is something magical about providing interoperability and compatibility, which are absolutely, legally allowed, I'm not sure what Oracle is complaining about.
Hell, according to the die hard nutjobs in most IRC #java, they completely deny Android has anything to do with Java and a statement to the contrary will result in a kick/ban. Obviously, that's not legally binding but given how far removed Android's Dalvik is from Java, its difficult to understand the confusion when even Java's supporters don't recognize Android/Dalvik.
No it should never have had a VM in it there is no need for it. Apple got it right by going 100% native, a jvm on a phone serves no purpose other than to burn precious processor cycles and battery life.
Got Code?
Ah, but technically Android doesn't include a JVM. It has a "Dalvik Virtual Machine," which processes Dalvik bytecode; there's a second set of tools that transforms standard Java bytecode (compiled from Java code written in the subset of the language that Android understands) to Dalvik bytecode.
It's all very confusing but it's part of the way that Google has gotten away with not making Android a real Java, and thus not subject to Oracle's rules for the platform.. It also means that in theory they could create another toolset that allowed any language to be compiled to Dalvik bytecode, though I think that would be a hassle.
Yes the Wii is targeted as casual gamers and kids go look at the game selection. Everything about it screams casual gamer. So you used to play games on the original Nintendo and can play mega man with your eyes closed that doesn't mean anything now 20 years after the fact.
Um, shouldn't that be Oracle collects a license fee ... ?
Gary Dunn
Open Slate Project
But with no major financial backing for the development of its Java libraries, Android could slip behind and lose the love of its Java-savvy developer base.
Doesn't Google count as a major financial backer?
Well, they're kind of caught in a pincer move here. If Google admits Dalvik is a JVM then they get sued for breaking Java the same way Microsoft did. If they claim it isn't a JVM then they have no patent protection since the patent licenses covering the JVM only protect JVM implementors. So Google has to pick one of these evils. It turns out the first one is a non starter because there is all kinds of stuff they don't implement in Dalvik to make it a real JVM so they are stuck defending patents.
However I am sure the court will still have a close and sceptical look at Dalvik nonetheless. Google is going to have to go to court and argue that they have this virtual machine which accepts no other language than JVM bytecode as its source input - and yet, this virtual machine is not a JVM! And then their reward for succeeding with this is to get sued for patent infringement which I think they will defend. At least half the patents will fall over, several more are nearly expired (FAT) so there are really only a couple of ones that are in play. Perhaps Google will just cop it and give Oracle some licensing money, hoping that the court will set a low value on these.
To be honest, if I was Google I'd be implementing an alternative language that compiles directly to the dex format as fast as possible - partly to convince the court that Dalvik is not a JVM but also partly as a stick to wave at Oracle and tell them - even if you win you will LOSE because we will move Android away from Java and you'll be left with a few billion $ one time payout but a huge black eye and Java developers fleeing the platform to Google's new language.
Google has gotten away with not making Android a real Java, and thus not subject to Oracle's rules for the platform.
The idea that a computer language should have rules imposed by a vendor is as absurd as the idea that a spoken language should have rules imposed by a government. In most civilized countries there is no such absurdity.
Have you got your LWN subscription yet?
Chicks are interested in my penis, not my clothes. Find better chicks.
After all, I am strangely colored.
Seems like Python would be the obvious second language to be compiled to Dalvik bytecode.
See this thread from back in 2008 before Android even shipped.
Linked at the bottom of that thread are the Dalkvik VM docs (link updated to head).
Also is a Stack Overflow post that links to many methods for Python and scripting languages to create Android apps. (Though some methods like Jython are still using Java.)