Hacker News new | ask | show | jobs
by pjmlp 3738 days ago
I know pretty much what happened.

The fact is that Google forked all of it.

You cannot use anything besides a pseudo Java 6.5 (the language), because there isn't support for all features available.

You cannot make use of the full Java SDK libraries, because Google's fork only supports cherry picked portions of the JDK, to the point that people have ported JDK classes to Android to close the gaps when porting Java code.

You cannot rely JVM features, because Dalvik/ART don't support everything that it is possible in a certified JVM like invokedynamic or more updated JNI versions.

The fact is that Google broke the Java eco-system, regardless how Google fanboys want to paint the picture that Google != Microsoft.

They tried to screw Sun and take advantage of their economic misfortune.

Luckily I don't suffer from Google colored glasses.

2 comments

Reality tends to have more nuance than you are willing to admit in this instance. Sun v. Microsoft was over very specific issues.

Even thought the specifics don't seem to matter to you, I'll add a bit more detail. "The sticking point is that Microsoft decided the Core Java class libraries were insufficient for its needs. Now there's nothing wrong with extending things by subclassing and placing the new objects in a package outside of the java.* class hierarchy. But deciding to add about 50 methods and 50 fields into the classes within the java.awt, java.lang, and java.io packages, as Microsoft did, is extremely problematic. "Microsoft deceptively altered key classes and inserted them into their SDK," said Baratz, which results in developers thinking they are writing Java, when actually they are writing something that runs only on Internet Explorer.[1]

> They tried to screw Sun and take advantage of their economic misfortune.

I have some sympathy for Sun, but had Google asked for permission for Java on Mobile, Sun would have insisted on the abomination that was J2ME because that was their mobile strategy. I'll take Java 6.5 over J2ME any day

1. http://www.javaworld.com/article/2077055/soa/what-does-sun-s...

No Google "fanboy" (I actually hate the term, it's for immature 20 somethings to use), but Google didn't break the Java ecosystem IMHO.

The created a whole new language that happens to be mostly based on Java, for a very specific target OS where Java wasn't even available before.

The familiarity with Java is merely a bonus and boost for the adoption of Android programming from Java devs. It's wasn't meant (and it isn't) a jab at taking the Java development market (which is was Microsoft did -- going after the same people using Sun's Java, and for the same environments they used it in).

> The created a whole new language that happens to be mostly based on Java

That's the "extend" part of "embrace, extend, extinguish."

Not in the old MS-SUN wars sense.

Extend implies extending an existing X product.

Google made their own runtime, NOT calling it X, and NOT targeting the same platforms where Java was available. And of course this never had any impact on regular Java itself -- so no extinguish part. Nobody stopped using Java on the server or the client even, to use Google's version, because it's not offered at all there.

Their language not only didn't target existing Java deployments, but it was also created (and has always been constrained) for a new platform where Java never existed, and for a usage domain where Java had negligible presence (mobile development in post-iPhone smartphones).

And even if they HAD targeted normal Java deployments, it would have been totally find, and not "embrace, extend, extinguish" if it wasn't called Java. It would have been like MS' C#, not MS' altered Java.

If you don't pretend it's the same product (like MS did), then "embrace, extend, extinguish" is exactly how evolution works in most cases, including the natural one -- things get replicated and some crucial extra sauce is added, and if it's good, then the old things wither.

In fact, in this sense (where you mimic another opponent) "embrace, extend, extinguish" is exactly what projects like OpenOffice, Gnumeric, Gimp, etc intended to do.

But, as said above, this, while also fine, is totally different to what Google did.