Unpopular opinion: I feel Google should be punished for what they did to Java.
Maybe the mechanism being used is wrong, but Android bastardized Java and as an Android developer I feel real damage has been done to the health of the Java ecosystem by having billions of devices run fragmented Java-but-not-Java.
Google has started to make it right with the switch to openJDK and Desugar, but in a lot of ways it’s too little very late.
Java was only popular in the first place because people assumed it was a free-enough language that anyone could implement. Everyone assumed the TCK license was a technicality right up until Apache Harmony was (entirely unreasonably) denied one; most of the JCP members expressed shock and dismay at that.
That was the decision that lead to Android being "Java-but-not-Java". If they'd been granted a TCK license like they should've, they'd've implemented proper Java (confirmed by the TCK) and we'd be in exactly the same situation as if Google had used OpenJDK all along.
> real damage has been done to the health of the Java ecosystem by having billions of devices run fragmented Java-but-not-Java
Even 100% running with that, damaging an ecosystem isn't against the law. You could argue that Google damaged the Erlang ecosystem by not basing Android on Erlang. Ecosystems compete with each other all the time, and it's hard for one to grow without damaging another.
I didn’t say it’s against the law, or imply it. If anything I implied the opposite with the comment about the wrong mechanism.
Actually my mistake, I assumed that you mean copyright, if you mean all laws in general, I feel there’s probably a way for Oracle to litigate, similar to how J++ went down
I’m don't agree with that, the big reason why what Google did was so vexing was the timing.
Java was just starting to get revitalized after a long period of stagnation. Java 7 was a big deal and for a long time Android devs were limited to a weird amalgamation of Java 6 and a few Java 7 features.
Then Java 8 came with lots of great Stream goodies (and a lot more) while Android devs are still forced do to make due with unofficial backports or cutting off most Android devices (API 24) is the first to support them natively.
Android development gets mindshare for Android, not Java. The speed of the transition from Java to Kotlin shows how antsy devs were to get away from Java.
There are interesting things happening with Java, and they’re all outside of Android
> Java was just starting to get revitalized after a long period of stagnation. Java 7 was a big deal and for a long time Android devs were limited to a weird amalgamation of Java 6 and a few Java 7 features.
Counterclaim: If it were not such a big legal hazzle, it would have been a lot more easy for Google to update to new Java versions fast on Android.
Counter-counter-claim: No, it wouldn't, because Google screwed the pooch with their update mechanism. The reason people were faced with the decision of not using the new features, using unofficial backports, or cutting off older devices is because Google could not update their devices in a reasonable manner.
Just to give examples that look plausible to me: Because of the legal burden Google decided to implement their own version of the Java standard library based on Apache Harmony.
With every new version of Java coming there might be new legal pitfalls to consider and surely almost always the sword of Damocles that Oracle might consider the fact that Google implemented new Java features as a reason to extort more money from Google since they implemented additional copyrighted APIs.
Whaaa? I mean Java is undoubtedly more popular because of Android but it's not like it was hurting before. Sure, there aren't a lot of consumer-facing applications running Java but it's pretty much the standard on the enterprise side of things.
2006 - Jasper S20 with SavaJe OS gets presented at Java ONE
2006 - End of the year, SavaJe fails to gain another round of investment, in spite of the successful reception at Java ONE
2007 - April, Sun public announcement to buy SavaJe assets
2007 - November, Open Handset Alliance is created
2008 - November, HTC Dream gets released as the very first Android device. The initial architecture diagrams have a certain resemblance with SavaJe ones.
The OS that came to be Android started in 2003, was initially based in JavaScript, had lots of time to inspire on Java stacks after they pivoted to Java and were eventually bought by Google.
Only after SavaJe was no longer around, it became public what Google was up to regarding their mobile OS strategy.
Why are you comparing the date of SavaJe's being acquired, with the date of Android being actually released or gaining third party external hardware partners? Apples and apples would be Google's acquisition of Android in 2005 vs. Sun's acquisition of SavaJe's in 2007. And even then, Google acquired the actual devs too, whereas Sun only acquired the code and IP.
And Android is way more a rip off of Palm than SavaJe. All of the interesting things it does (the intent system, the capability based IPC, the battery friendly process lifecycle model, etc.) clearly descend from Palm (which isn't a surprise given that's where Dianne Hackborn cut her teeth).
J2ME was king on mobile devices in Europe (at least). Moreover, SUN had licencing fees from J2ME and if I remember correctly, you could not use Java on mobile devices without paying fee to SUN. So, it was their source of income and Google abused that. Just check interview (many times referenced here in comments) with James Gosling to see what the feelins on SUN side were. At that point, they were already underdogs compared to Google. This is all about greedy Google business behaviour and I think with Oracle they just got nice sparing partner to play legal war games with. SUN was too nice for them.
It seems to me that it's a good thing for Oracle. Oracle/Sun was never going to make any headway in the mobile space. It just wasn't going to happen. So, it wasn't a loss to them, because they had already lost that market.
But, with Android, Java got a boost that bled over to the server, and to a lesser extent, the desktop. It can be argued what the size of that boost was, and if it had any real impact (I would argue that it was not significant), but it was still a boost that they never would have had.
Anyway, that's the opinion of some random guy on the internet.
But isn't that the point? That Google uses the Java infrastructure, but when it comes down to licensing, it isn't Java anymore? Google made a business decision to not buy a license and time will tell if that was a good decision or not.
What is it with all these ignorant but highly opinionated folks seemingly astro turfing for Google? Java remains very strong on the server side and it hardly needs Android to "save" it.
Android popularity (or demise) does have 0 impact on server-side Java. We don't share the toolset, we don't run the same JVMs etc. Call it Jiva if you like.
Google should go Kotlin way, it will be better for everybody.
The court isn't going to care if what Google did was damaging to the Java ecosystem. They only care if Google broke copyright law. Also, all software stacks are fragmented. Consider the alternative - some kind of machine overlord dictatorship ;)
They made billions of people access and use technology. Java was just a tool to help them achieve it. Sorry, your complaint is not really making sense here
It’s like I have a brand that makes widgets and gives out the plans to our widgets.
Larry finds plans to one of my old widgets and builds it into his awesome product and millions of people learn how to use the old version of my widget.
But my old widget kind of sucks and I’ve been releasing new widgets that fix a lot of issues.
Millions of people are gnashing their teeth over the old widget but Larry won’t update which version of my widget, he’s occasionally using parts of my new widget blueprint so now he’s creating Frankensteins of my widget that don’t even have a version.
But they’re still my widgets, Larry calling them by my brand name, people are conflating them with my widget, people making tools for my widget now have two diverging targets. People are saying my widget sucks because of issues I fixed ages ago.
It almost reminds me of J++ in a way, but with more subtlety.
Someone flagged the comment before I could post my response, but here it was (re: Google didn't save Java on the client):
Java on the server was not in decline, but Java on the desktop was declining, had declined. Applets were dead, very few success stories around Java Web Start. And the main three 'consumer' success stories for Java on the frontend were Limewire, Minecraft, and IntelliJ/Eclipse. As a consumer facing technology, Java was a complete failure. No sane person wanting to ship a commercial, consumer app to end users would consider Java as a first choice. I have been a Java developer from the day HotSpot Alpha was released, I say this as someone who loves the platform.
Personal Java failed. I worked for years on J2ME apps, Java on high end Nokia Phones, Java on Palm devices (Ghost VM), etc. All these platforms amounted to nada. Flash was far more widely used for front end user facing apps than Java. Ditto for Visual Basic.
The relevance of the Swing comment is the people complaining about the fragmentation of Java's write-once-run-anywhere promise, which was always more of a promise than a reality. If you want to make a viable mobile Java, you had to remove Swing, Java2D, CORBA, JMX, and a ton of other JDK libraries, which is exactly what Sun did with the various profiles as well. But once you do that, you have "fragmentation"
If Google had not produced Android, I can bet the leading platform today for mobile development that is not from Apple, would either be Xamarin based C#, or some scripting language like Lua or Python on top of a Linux widget toolkit. Java would not be in the mix at all. Or perhaps it would FlashMX sitting on top of Linux (ugh)
Did I say they were? You’re patching into the use of the word feeling.
This just seems like a replay of J++. No one outside of Oracle or Google can determine the facts behind those statements you quoted, so the best outsiders like us can do is go based on “feelings” based on basic reasoning
Java was literally dying before Google released Android. It was just something you did if you were in university or working on a legacy system. Everyone was moving to Ruby, JavaScript, and C#.
Look again. The downward trend of Java was arrested and it stayed on a plateau when Android began becoming popular; then come 2015 they both came down together.
If we're using Google Trends as a proxy for what happened, then I'd say there's some truth to Android saving Java from its decline.
On the other hand, Java was on a decline before Android, and since then it's more popular than ever. Just think how many new developers have had to "learn Java" just so they can build Android apps.
I understand the fragmentation issue, but I think it's a minor one and the net benefit for the Java ecosystem was much larger.
Also, Oracle is simply in the wrong trying to copyright APIs, and it has gotten a lot of hate from developers over that + all the other things they've done to Sun's previous projects that also made developers hate them.
With its developer-hostile attitude, is it any wonder developers are no longer interested in having anything to do with Oracle?
> Oracle said its APIs are freely available to those who want to build applications for computers and mobile devices, but draws the line at anyone who wants to use them for a competing platform or to embed them in an electronic device.
This argument that Java was dying before the arrival of Android is super suspect. At best, you could say java was stuck in a rut between 6 and 7 (similar to c++ up until c++11), but it’s industry usage had not waned.
Maybe the mechanism being used is wrong, but Android bastardized Java and as an Android developer I feel real damage has been done to the health of the Java ecosystem by having billions of devices run fragmented Java-but-not-Java.
Google has started to make it right with the switch to openJDK and Desugar, but in a lot of ways it’s too little very late.