TL;DR version: read the bulleted list at the end.
A few things to mention before starting:
" Google used Copyrighted Oracle JDK API and then switched to Open Source OpenJDK API " is fake news.
To understand it you need to consider what an API is.
API is like a standard of calling like the phone book: a name and a phone number table. Only one way to write it to be right. You cannot change the phone number of a name or change the name of a phone number but you can emit some entries.
So the API of Oracle JDK , OpenJDK and Apache Harmony are the same. All are one copyrighted API bunch, always called the Java API. even though every implementation of these has a different license. Oracle JDK adds performance tools not APIs.
The real news is that Google is moving from open-source Apache Harmony implementation to open-source OpenJDK implementation. Both are as Oracle JDK implementations use the same Java API.
To make it clear code can be classified to API and Implementation. The API is a declaration. The implementations can differ, but all must adhere to the same API.
Unlike Natural languages, All current programming languages force declaration code to be strictly the same to declare the same concept. No way to write API code to adhere to a specification except only one. Google could not write the API any other way to declare the API for Java. Only one!
This is the first trial to mention that APIs are copyrightable. No law or trial to mention this before.
The API is common to a platform, Even Kotlin is using the Java API.
So why did the trial start? Let's go back and check Sun's profit model. There is Java SE for computers, and Java ME for Mobiles. Java SE is a one-piece take it or leave it. they refuse to let any vendor fragment it. You want to Implement Java SE, then implement it all, apply for a license, which checks you implemented it all correctly. Microsoft changed the API before. Sun won the case against them and killed Microsoft Java. That is why C# arose later.
The other option is Java ME, a superset of a subset of Java SE. Mobile companies license this from Sun, with no reference implementation, most of APIs are optional, leading to fragmentation. The most successful vendor was Nokia Symbian and Blackberry. But they were falling after Apple iOS.
Google was negotiating Dalvik ( or a pre-Dalvik as Dalvik appeared in Android 2.2)which removes some parts that are not implementable on a touch phone as Swing ( GUI window , e.g, Multiple Windows each with a close button is never nice on a small touch screen). This license does not match Java Se nor Java ME. But they canceled the negotiation.
The main objection of Sun that this fragments the Java SE, by removing some APIs and adding some API. Steering committees of Java can not control what was added or removed from Java SE.
Java SE back then did not have optional components. Ideas of Java SE Core and removing Swing from the Java runtime were not there.
Now, back to the impact on open source:
- The first impact of Oracle vs Google is the same as Sun vs Microsoft: If you have projects big enough, then create a new language with a new Platform: C# with .Net or Dart with Flutter. Kotlin (most probably) is not a legal solution as it is in the same platform with same API.
- Drop backward Compatibility with a debated in court product ( Microsoft Java and Android compatibility in
Fuchsia) or negotiate legally or wait for the next case in court.
- Open Source does not mean copyleft. The news are fake. The copyrighted API are shared between the open source OpenJDK and Apache harmony and the proprietary Oracle JDk.
- For small entities that needs to re-implement a language or a platform API, you need a legal promise not to get sued (Mono got one for re-implementing .Net) or you need to use a language that no one owns (C++ or Javascript).
- Do not believe newspaper in technical legal details. They do not read programming books nor legal case files.