You are forgetting about the native desktop, IoT and mobile space, where besides Android's fork of Java, the language has lost its market.
We have zero customers using Java, besides Android and legacy Swing applications on those areas.
Otherwise customers are asking us instead for Qt/C++, .NET, Swift, Objective-C and Cordova/Ionic.
With Microsoft adoption of Docker, and their Go sponsorship on Visual Studio Code, I have started to see some Java consulting companies on my area to add Go on their services list.
Most Java deployments that I have to deal with on server side are still on Java 1.5 - 1.7, RichFaces and the occasional Websphere.
But Java was never "meant" to be a leader on the desktop; VB, Delphi and plenty of others have always had the lead. Whatever market share Java is losing, it is market share that it got due to market failure, and only held briefly. You're absolutely right about mobile, but the fragmentation there is such that no language/platform is the clear winner. Java's uncontested hegemony was short-lived, but even without it, it is an order of magnitude ahead of its closest competitor on the server side (with the exception of .NET). Everything else is just too fragmented to pick out a winner. Go is indeed an interesting challenge, but it has some fundamental issues that are serious roadblocks, while the JVM doesn't.
Let me put it this way: the war on server-side development is the JVM's to lose. Right now, it has some challenges (memory usage etc.) that are all solvable, if the important ones are recognized and addressed. Maybe they won't be, and someone else would step up and grab the lead. Maybe it'll be .NET; maybe it'll be Go; maybe JS. But right now, all alternative platforms are cannibalizing one another and competing for market share that has (almost) never been Java's much more than grabbing significant market share from the JVM.
I am curious to see what Oracle will do after Java 9 gets out of the door, specially now that they lost the case against Google.
In the hypothetical future they do like Sun and let the language stagnate after Java 9, given that Android Java is stealing their revenue, who do you think will bother to pick it up?
We are already seeing them silent on JEE and JavaFX, Kenai and Java.net got closed down, and it wasn't only the JEE evangelists that left Oracle, key JVM people like Monica Beckwith have also left.
I don't see IBM, Red-Hat or Google willing to pick the language and offer the resources and care to design it further.
And the type of research that Java GC and JIT require need deep pockets, not a few weekend pull requests.
> In the hypothetical future they do like Sun and let the language stagnate after Java 9, given that Android Java is stealing their revenue, who do you think will bother to pick it up?
Google (who is heavily invested; Google's OpenJDK team is about as big as their Go team)? IBM? Red Hat?
> We are already seeing them silent on JEE and JavaFX, Kenai and Java.net got closed down
We are seeing the exact same things happening at MS, yet there you interpret these events generously. Oracle is trying, like everyone else, to see where the wind is blowing. Kenai and Java.net are completely useless, and have been effectively abandoned for quite some time (more abandoned than Google Code).
I understand this tendency, though. When you're the leader and change things, you appear desperate. When you're an underdog, you seem visionary. But the fact is that Java isn't just the leader. It's competition (except for .NET on Windows only) is more than an order of magnitude behind. Java has also been eulogized time and again -- Ruby and Python were supposed to kill it last time around -- yet the JVM grows stronger, while the all the rest fiercely compete with one another on the distant second. I agree that JS is real and may actually change things, but there is so much new server-side code being written on the JVM -- significantly more than all other tech combined -- that the weakness on the client may kill it eventually, but it will be a while before the trend changes and we're at peak Java. There are huge companies like EMC that are just now moving projects from C++ to Java, and smaller companies like AirBnB that are moving from Ruby/Python to the JVM.
> I don't see IBM, Red-Hat or Google willing to pick the language and offer the resources and care to design it further.
Why not? Whatever other language/platform they pick will require even more investment than Java. There is no other language with that the industry is similarly invested in (except maybe C). Not even JS, which is still over 95% client-side code.
> And the type of research that Java GC and JIT require need deep pockets, not a few weekend pull requests.
Microsoft has a different problem, the startups of the 21st century rather use UNIX free clones than pay for OS licenses.
Google has proven more than once on Android how "committed" they are to the health of the Java ecosystem and how willing they are to write top performing JIT compilers for Java and keep their implementation up to date.
Where they are putting their language research money is on Go and V8.
IBM is the main company besides Apple now investing in Swift and last year they had a major project to make J9 JVM language agnostic as a portable runtime.
My career has shown me more than once that languages which aren't sponsored by OS vendors eventually fade, regardless how big their user base is at a given moment.
Oracle surely isn't an OS vendor as such, what they made to Solaris and their Unbreakable Linux aren't really things that many still care about.
What I know is that RFPs for Java projects on my little part of the globe are either Android or maintenance related.
I hope to be proven wrong, but I no longer search for Java projects as I used to.
> Google has proven more than once on Android how "committed" they are to the health of the Java ecosystem
Google's Android team and Java team seem to be completely distinct from one another. Throughout most of the trial, Google remained one of the companies most dedicated to OpenJDK.
> Where they are putting their language research money is on Go and V8.
I don't know what you mean by "language research money", but they're putting as much investment into OpenJDK improvement as into Go. Don't know about V8. They certainly wasted a lot of effort over Dart.
> last year they had a major project to make J9 JVM language agnostic as a portable runtime.
Yes, I was at JVMLS where they introduced it. Oracle Labs' Graal is much more "language agnostic" than that, and still very much Java. Graal may show the way to smooth (if not seamless) Java/non-Java interop.
> What I know is that RFPs for Java projects on my little part of the globe are either Android or maintenance related.
In that case, I think that your view may be very skewed. Android appears absolutely minuscule compared to Java where I'm looking. Of course, my view may be skewed as well, as I hardly look at front-end projects at all, and on the backend Java is so huge as to dwarf pretty much everything else.
This makes me wonder if IBM could now (post-Oracle v. Google) take over, or at least bite off a piece of, Java if it introduced value types and other goodies for JVM languages ahead of the official process and made a production version of J9 available at no cost.
We have zero customers using Java, besides Android and legacy Swing applications on those areas.
Otherwise customers are asking us instead for Qt/C++, .NET, Swift, Objective-C and Cordova/Ionic.
With Microsoft adoption of Docker, and their Go sponsorship on Visual Studio Code, I have started to see some Java consulting companies on my area to add Go on their services list.
Most Java deployments that I have to deal with on server side are still on Java 1.5 - 1.7, RichFaces and the occasional Websphere.