Posted
by
CmdrTacoon Tuesday October 12, 2010 @03:28PM
from the no-you-are-the-more-badder-one dept.

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'.

Agreed, I think the usage of the term bind is excessive. Somehow MS and RIM survive without external developers working on their products language I'm sure Google can handle it. And as TFA stated Google has OpenJDK developers right now, whose to say what the future will bring to android.

As for MS, both C# and the Common Language Runtime have published specifications, and MS's implementation is not the only one (see also: Mono Project). Granted, I don't think Mono has released a version of.NET Compact Edition.

the problem is not lack of devs, but money. Google currently has some good margins and takes in a lot of cash. if they were to develop their own visual studio clone for android development it would cost a lot of money that they would have to eat in lower margins and lower stock price. or charge money for the kit making the cost of entry a lot higher than it is now. kind of like apple requiring the purchase of a Mac to develop for the iPhone

Not even check, honestly. More like a limp attack on the queen with a pawn. What Google uses from the Harmony project is a bunch of the core java.* classes. This stuff changes, sure, but not particularly heavily or rapidly these days. This is not where Android is innovating, nor is it a huge area of rapid development, assuming Harmony is at or approaching stability. This might require Google to shift a couple of their Java developers around, but the legal issues are far more significant than any costs associated with this.

The Dalvik VM itself is already developed internally at Google. The Android apps and framework and the rest of the stack is already developed internally at Google.

This might very well mean that Harmony won't see ongoing development toward being a fully featured JDK replacement, but Google doesn't need that anyway.

I'm not an expert on Android internals or anything, but I think this story is being significantly overblown.

I'm not an expert on Android internals or anything, but I think this story is being significantly overblown.

Seriously understated... The problem with Oracle and Google is simply licensing. If Google had licensed Java like every other company doing a port like Android perhaps Sun would still be a viable company today. Perhaps it is unfortunate that Sun did not want to litigate, but you can't expect Oracle to drop the same ball.

...except that it's not a "port", and any company that licensed Java VM has used a Java VM that was licensable. Google isn't using one of those VMs. Nobody dropped the ball here. It's just another frivolous lawsuit trying to ride the coattails of somebody else's success.

Dalvik, because Oracle has sued over Java and not the other way around. At least, that's one way to look at it. Dalvik is apache licensed.

Can you download and use Dalvik on your desktop or server? Is it completely open source?

Yes, you could download and run it on a PC (the SDK which includes an emulator is available for Linux, Mac and Windows). If you want to boot directly into android, google doesn't provide that, but see http://www.android-x86.org/ [android-x86.org]. As far as I know it's completely open source.

Or is it just a proprietary copy of a more open platform, with a few tweaks, and a cynical dodge of paying for it?

This is the part I don't understand. Pay for what?

The JVM they aren't using? The implementation of the core classes from apache? The android stuff they did themselves? What are they supposed to be paying oracle (or sun) for?

Oracle would probably prefer that Google had used J2ME and would pay fees. But they didn't choose J2ME. Oracle would probably prefer that Google had licensed the JVM. But they didn't, they wrote their own.

Yes, the Java API that Harmony has is a clean room implementation of the Sun ones, so the implementation is not a copyright infringement, but it's still an implementation of a spec that someone else designed and refined and improved over the years

Yes, a spec that Sun promised that others could freely and independently implement. That turned out to be a lie, since their patent license requires that those implementations pass a test suite that Sun refused to make available.

No wonder efforts to open Java stalled out a couple years ago, because along comes Google, who's willing to leverage every strength of Java, borne on Sun's back, and take it away without giving back, by walking some fine line of the letter of the law, while ignoring the spirit of the law, which is that if a company drops billions of dollars into a technology, and is trying to sell it (JavaME), they should be compensated. Why didn't Google simply make their own technology from the ground up? Because they received tremendous value from taking it. Was that not worth some compensation?

I would say they did make their own technology from the ground up, as much as Sun did anyway. Android is not compatible with JavaME, you can have floats, there's no CLDC. Android is open source, how is Google not giving back?

Sun didn't drop billions on JavaME. Java itself was open (at least to an extent) that was the spirit of the "law". Google ignored the ME part of the blueprint when building their own house, which me to removes any obligation to pay for it.

Certainly Java is a fine language. But it built on the state of art at the time, not from a void. Android does the same. Isn't Java just a "proprietary copy of a more open platform, with a few tweaks, and a cynical dodge of paying for it"?

I still don't understand what you think Google is supposed to pay for. JavaME license? Certainly Google didn't invent computers, programming or phones (and neither did Sun). Who was Sun supposed to pay for the progress they took advantage of?

It's not that I don't understand how Google benefited or how Sun contributed. I just don't understand what business model you expect.

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.

And that nightmare (in addition to licensing costs) is why Google came up with their own VM implementation.

Technically speaking, RIM (Blackberry) was the first mobile OS to come up with that workaround. Google (or more specifically the startup that Google purchased) just saw what RIM did, saw that it was working, and did the same themselves (thus avoiding the per JVM licensing fee that Sun was charging companies).

But Oracle is claiming that these patents apply to whatever Android is doing now, using Harmony, so I don't see how it would make any difference if Android switched to using OpenJDK instead, as the OP suggests.

Given the insanity that is patent law, it wouldn't surprise me. However most patent battles end up with counter-suits and I wouldn't be surprised if Google could hit Oracle where it REALLY hurts, i.e. their core database products. I'm really hoping this is one to buy popcorn for.

The components of Android that allow it to run Java code are based on the Harmony project, an open source implementation of Java created under the aegis of the Apache Software Foundation.

This is a non-issue, unless I'm missing something. The writer's point is that Google will have to contribute more to the project since IBM had done so much of it, but so what? As someone mentioned earlier, Google has plenty of talent to throw at it.

Well, Harmony is released under the Apache license, while OpenJDK is released under the GPL. I don't know if that would make a difference - Android already includes GPLed software, so Google clearly have no objection to the license in general.

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.

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.

Actually no. I don't think so. But the summary gave the appearance, so I just gave it some latitude.

Either way, making a deal with another company to ensure that all their developers stop working on a project is going farther than to "discontinue supporting" it.

Except that IBM has said that they have no plans to stop supporting Harmony. Of course the exact words were " IBM will continue working on Harmony, but its main efforts will be directed toward OpenJDK, Smith said.

This article is largely about Oracle offering IBM concessions regarding the management JCP process so that IBM would drop involvement with Harmony in favor of dedicating resources to OpenJDK and the Java Community Process.

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.

That's what I wrote. The question is, how much code is that in practice? TFA says that maintaining it would be a significant burden, but I'm unconvinced. I suspect it's a fraction of the Google-specific Android Java code in practice.

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?

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...

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.

Is it a huge amount of code, or a huge amount of work to get it right?

Both.

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.

Irrelevant, they already use Harmony. It doesn't matter how open it is when you can't use it because of patent issues, which is Google's current problem. That's when you start talking about re-writing code to work around patents.

Irrelevant, they already use Harmony. It doesn't matter how open it is when you can't use it because of patent issues, which is Google's current problem. That's when you start talking about re-writing code to work around patents.

Oracle's patents don't have anything to do with Harmony. They mostly relate to implementation techniques for VMs (not just Java VMs, but VMs in general - there were claims around that Microsoft licensed those patents from Sun back in the day so as to not get sued for.NET), and target Dalvik, not Android class library.

TFA not about Oracle threatening Harmony with patents, either. It's about Oracle withdrawing official support and contribution to Harmony, so that it becomes "just a community project", which

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

Would you prefer the alternative of just not releasing it as open source and letting it die quietly instead? But then people would say "why can't they just release the source code and let the community run with it?". Guess you just can't win...

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.

I call your bluff: Show source control logs that demonstrate that any significant Google open source release (of which there are many) has more than a trivial percentage of non-Google contributions. For full credit, you must show that these non-Google contributors were somehow not working in their self interest by contributing to the project.

On that latter point... Last I checked, "open source volunteer sweatshop" was still equal to the empty set. I.e. no one is forced to contribute to any particular piece of open source code. The deal for all OSS projects is essentially the same: "hey, I made something cool, come help out if you like!" Whether "I" is a corporation or one or more independent volunteers is irrelevant. Any external contributors to a project do so for their own reasons, reasons which have been extensively discussed elsewhere.

Seriously. If I was Google, I would block all of Oracle's IP space from accessing any Google service. And, hell, IBM's too, for good measure. Then I would threaten to block the IPs of all of Oracle's big customers.

What is Oracle going to do? Google isn't a public utility. Yeah, Oracle would obviously sue Google immediately, but that would work in Google's favor- they could say "Open up Java, and we'll unblock you."

For that matter, what law says that Google has to give you access to their site? I can't think

Seriously. If I was Google, I would block all of Oracle's IP space from accessing any Google service. And, hell, IBM's too, for good measure. Then I would threaten to block the IPs of all of Oracle's big customers.

Oracle and IBM have a lot of pull with most Fortune 500 companies. Starting a war with them would be a serious mistake, particularly for a company whose major source of income is advertisements.

JVM's have a fixed cost to develop them, just as Dalvik has a fixed cost to develop new and exciting features like JIT's and better GC's. IBM has J9, BEA (now Oracle) has JRocket, Sun (now Oracle) has Hotspot. Instead of writing their own customized JVM's they've decided to collaborate (I assume) to cut costs and streamline the JVM's presentation and roll-out to customers. How is this some super secret attack on Android?

Harmony is open and will remain open for the foreseeable future. Its not like BEA/Oracle

Harmony is open and will remain open for the foreseeable future. Its not like BEA/Oracle/IBM were big supporters of harmony before this deal was inked...

Actually, you'll find in the article that most of the code in Harmony was written by IBM employees on company time, and now that IBM is switching its efforts to OpenJDK, the ASF folks are essentially saying that Harmony is dead. While we'd all like to believe that open source projects magically maintain themselves through the gumption of citizen-programme

It's really Google that undermines Android by using the Dalvik VM, with its (even if slightly) incompatible bytecode instead of actual 100% Java that can run on any properly compatible JVM. That move just opens the platform to this kind of disruption. Why did Google do it, anyway?

If Google had made Android simply a (perhaps heavily) patched Linux kernel distro, with its own variation on the GNU tools and userland, with a standard JVM, it would have tapped the entire large and dynamic Linux developer communi

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.

The only free mobile phone stack out there, from top to bottom, is MeeGo (formerly Moblin and Maemo). It is on Linux (GPL), then on Qt (GPL). There are NO FEES except for being in the Nokia Ovi (App) store. The problem is then handsets... or is it? Qt branches work on Android (NDK, marginally using Java via a stub loader) and in iPhone. So If you want to side step the license issue, and get platform independence, then Qt is the way to go.

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.

Also, technically, Android doesn't run Java, it runs Dalvik. Dalvik is CURRENTLY only compiled from Java, to my knowledge, but the compiler and java stuff are not on the phone, it is on the developer machines.

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.)

Are you also the same Josh Fruhlinger that writes the Comics Curmudgeon blog? Name seems familiar, and although I at first thought it was just a coincidence, the connection is understandable. After all, plenty of people are interested in programming, blogging, and comics. Like me.

Well lookit that. I guess I could have figured that out by clicking the homepage link in your comment page. I must say, I wouldn't be keeping current on developments in Mary Worth if it weren't for your blog over there.

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 cr

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.

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.

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.

he doesn't mean that they should get a fee, the word potential was accurate. He means that Oracle wants a fee anyway. it's called entitlement culture, and this is what happens when intellectual property laws run out of wack.

It's not about the old people who think they deserve something from the young, it's what happens when you conflate owning something intangible in the same way as owning a physical product that people tend to get the other properties mixed up.

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.

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.

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.

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.

I suggest a Parrot to Dalvik translator as it'd let developers use any language that compiles to Parrot. Python, Perl, etc. Java is a suck language anyway and Android breaks from many Java conventions anyway.

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.

(1) as far as I can tell, this being intended as an attack on Android is PURE speculation. There are other options as to why this could have been done...(2) It seems that the issue is the decision of Oracle, but the decision of IBM that is making the challenge for Google. Why blame IBM? It's like *punches self in face, NO CAR ANALOGIES*... It's like trying to blame the committer team of some *BSD for Apple choosing to make OS X based on BSD rather than Linux, thus adding a bit of challenge for people who wa

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.

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.

I sure as hell wouldn't get one, but I'm a power user. Any tech-savvy / power user / business would be silly to get an iPhone over a good Android phone or a Blackberry.

But there are plenty of users not in those categories, where the UI polish (vs. Google) and wide app variety (vs. Blackberry) is actually not a bad thing. Now, in 3-5 years, I see Android being polished enough to make the choice of iPhone of Android be a silly decision for any grou

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.

Yes.. and why did they choose a non-native solution for a embedded platform? Are they aware how many cpu cycles (=battery power) ius wasted in pre-compiling code instead of doing something that could have been done on a development platform? Apple did that one right:Native apps save cpu cycles and improve response time.