That's a thorough miss-understanding and misrepresentation of the situation. It also has nothing to do with open source specifically.
Google never promoted Dalvik as being a licensed Java VM implementation and never claimed it was a compatible Java runtime. The license was for logos and trademarks. As long as they didn't use those logos and trademarks, there's no violation of the license for those things. The API case is based on copyright, not trademarks or licenses so is a separate issue.
This is why Microsoft could lose their dispute with Sun over the MSJVM which was a non-compliant JVM implementation, but still come out with J# which was an implementation of the Java language running on .NET.
Microsoft licenses the Java trademarks and claimed the MSJVM was an implementation of the Java runtime, while breaking compatibility requirements for the license. Therefore they were in violation of the license. The .NET platform was never claimed to be anything to do with Java, so having Java code run on it in the form of J# was fine. The situation with Google using the Java language running on Dalvik is exactly analogous.
This sounds like you read Jonathan Schwartz's testimony and almost misinterpreted it.
The license included using Java's name and trademark and that was for Sun's benefit, not Google. Google wasn't asking to call it a Java phone. That's why part of the testimony is actually Sun saying they'd pay for that
And the rest of your comment is completely missing the mark here.
You're saying MS was in the wrong with J++ because they licensed Java.
I'm saying MS was in the wrong because saying you're using language X then randomly not supporting parts of that language is a shitty thing to do when you have a large presence because then you start to fragment the language's user base.
Copyright be damned. (Which is exactly why I said I wish they could have taken a different angle)
-
Logo or no logo, for years Google said you program Android in Java.
Their "Java" did not track the language everyone else knows, using a strange smattering of features from 6 and 7 in this weird hybrid that hobbled along.
As a result there was plenty of confusion among developers about what worked on Android. As someone who has mostly held day jobs that involved Android for a decade or so now, I can confidently say it was problematic and Android dragging its feet while being such a large platform caused people to avoid using language features.
When Lambdas first landed for example, I remember multiple projects refusing to use them since there was no official way to support them on Android (retrolambda which was written by a former coworker of mine addressed this)
This is so simple, Android should have licensed Java, created a compatible implementation, and kept it up to date. Would it have been hard? Yes. Would it have been better for Android developers who ended up using wonky work arounds, people learning Java and dealing with two sets of rules, and the Java ecosystem as a whole? Also yes.
If Android's "Java" is so different, then how does Google benefit? The whole point of reusing an existing language is to jump-start the app ecosystem by allowing developers to make use of their existing experience.
Like in Java 7 days Android didn't support NIO, randomly didn't support certain forms of exception handling, had random holes in library support (core Java libraries mind you, not the sun stuff)
The odds you could take a random XML parsing library for example and use it in an Android project were low. Random namespaces would be missing, cryptic errors tied to missing language support, the works.
Like you realize the idea of having a kinda-almost-the-same language being damaging is already known. J++ was not the same set of circumstances, but it shows that yes, you can make a language similar enough to benefit and at the same time be different enough to damage.
I mean literally QNX had better support through some vendor we were using at the time, but somehow Google couldn't do better?
Google never promoted Dalvik as being a licensed Java VM implementation and never claimed it was a compatible Java runtime. The license was for logos and trademarks. As long as they didn't use those logos and trademarks, there's no violation of the license for those things. The API case is based on copyright, not trademarks or licenses so is a separate issue.
This is why Microsoft could lose their dispute with Sun over the MSJVM which was a non-compliant JVM implementation, but still come out with J# which was an implementation of the Java language running on .NET.
Microsoft licenses the Java trademarks and claimed the MSJVM was an implementation of the Java runtime, while breaking compatibility requirements for the license. Therefore they were in violation of the license. The .NET platform was never claimed to be anything to do with Java, so having Java code run on it in the form of J# was fine. The situation with Google using the Java language running on Dalvik is exactly analogous.