Precisely. OpenJDK is not only one of the most popular software environments around, it is also one of the biggest (in terms of features, size of standard libray etc., and certainly in terms of total continuous R&D investment) Companies like Netflix, Amazon, Apple, Google, Linked in and Twitter are either entirely or significantly built on top of it (some of them even have internal forks), and even Facebook and GitHub increasingly use it, yet contribute little back (SAP and RedHat do make some significant contributions), while Oracle spends tens of millions of dollars every year on the several hundreds of full-time OpenJDK engineers it employs. We must support that somehow by getting more companies to contribute either directly in code or financially through support subscriptions.
As of JDK 11, Oracle open sourced (or discontinued) all of the remaining commercial features in the Oracle JDK and contributed them to OpenJDK.
(I work on OpenJDK at Oracle, but speak only for myself)
"while Oracle spends tens of millions of dollars every year on the several hundreds of full-time OpenJDK engineers it employs. We must support that somehow by getting more companies to contribute either directly in code or financially through support subscriptions."
An unsustainable situation will continue until it can't --some quote I'm butchering.
I'm inclined to agree with you that we need more contributions from outside Oracle.
Right now, Oracle is doing most of the work, but isn't happy with the money they're making. That allows those companies to contribute less back, but if Oracle stops doing that work, they'll have to step up, and I think they will. They'll shift some of that effort from internal forks to maintaining the base (those internal forks work well for them precisely because they're building on such a stable base).
While I acknowledge your frustrations, that's one of the points of free software. If someone takes OpenJDK, uses it, and has zero problems, they don't have any changes to contribute, and the license doesn't obligate them to contribute money.
I think these days, people are comparing to everyone else in the programming space. Lots of comparisons on past work (and existing ecosystem), present work, and future work can be done but we shouldn't rest on history when evaluating. The days of making real money on the language/runtime alone are probably gone.
Of course, it's just about where it comes from. There's not a GCC premium edition, or a hidden LLVM test suite, etc. I would never question the value of money in development. I think that the business model for languages and runtimes has (for a while now) clearly shifted towards no-strings-attached usage because the sponsoring/stewarding corporate interests align with the open ones. It seems the only barriers towards language and runtime use are put up these days by those clinging to business models of the past.
Thanks to Oracle, there is no premium OpenJDK or a hidden test suite as in the Sun days (Oracle contributed the remaining commercial "premium" features to OpenJDK a few weeks ago, including those that came in through the BEA acquisition). There is premium support offered by several companies (Oracle, RedHat, Azul, IBM), and a commercial JCK, which is not the OpenJDK test suite but a Java specification test suite for implementations that are not OpenJDk. The JCK can be freely used by OpenJDK.
Premium is something like discontinuing JS engine people rely on, move to Graal where certain performance features are not free for everyone. Hidden test suite is like the JCK I can't download to test my non-OpenJDK-based open source Java impl against (or Harmony or whatever). Regardless of details, the point is that it isn't more open like a MIT licensed Rust, Go, (recent) .Net, etc. There are obviously differing levels of openness by language and runtime regardless of specifics and differing levels by stewards of these languages/runtimes to make money on them.
We're not discontinuing Nashorn, simply not investing more in its maintenance any with the resources we have, which we can put to better use; if someone else wants to step up -- they're more than welcome to. Rust, Go and .Net Core (I think .Net isn't open source) are much, much smaller than OpenJDK. They require far smaller investment from the companies/organizations behind them.
Also OpenJDK lovers seem to keep handwaving the fact that the majority of its code is written by Oracle employees.
Elite GC and JIT compiler algorithms are not implemented for free during weekends and all nighters.