This is exactly the reason Microsoft has a BizSpark™ programme, and Ruby doesn't.
I'm not that worried about the whole thing. I mean, they could have included commercial features at any time, and probably do. This is just a switch.
Suddenly, putting a bit of money in the JVM allows you to go faster. In the beginning, the community will be disciplined about it and make sure that libraries and applications that use these features degrades gracefully, so you can make use of them without getting the commercial JVM. But already here it starts smelling, there are now two target JVMs. Testing just doubled in complexity.
Soon, small, clever libraries that does immensely useful stuff with the new features appear - like what Google Collections did for generics - and pretty soon you're wilfully handicapping your developers by not using commercial JVM. When you already have a revenue-generating code base, throwing Oracle a little money is a no-brainer. There's no way they'd make licensing so expensive that it wouldn't get a CTO fired NOT to buy it. But now they've introduced the drag at the start-up level which I'd voice concern over in my previous post. This is especially sad at a time when the JVM and even Java seems to be enjoying a bit of a renaissance.
Or are you equivocating Ruby with Rails running in a cloud platform? Your last sentence doesn't really parse well.
Open source projects like Ruby naturally don't need anything like this; the whole open source model is more open and accessible for everyone than even Microsoft's free offerings.
Ruby doesn't need such a program because the cost of licensing Ruby for a company that only has 2 servers and the cost of licensing Ruby on a fleet of 10,000 servers is still $0. The same is true for Java, for now...
While this leaves me with an icky feeling, being a java developer, I'm also cognizant of the fact that one of the major criticisms of Sun from the financial markets was that they could not monetize java very well.
It'll be interesting to look back in 10 years and see how Java has fared under Oracle.
One way to look at it is like this: Previously, to increase performance of a production Java app you would pay the best Java developer you could find a lot of money to make it run fast.
Now, you might still do that, but first you will pay Oracle some licence fee so you can use their commercial JVM options (and good Java developers are likely to insist on using those feature because generally JVM tuning options work very well). That take money out of the budget for Java talent.
commercial flags support features for which Oracle charges a fee for production use, though they're free for development and/or evaluation. There's no enforcement mechanism in Hotspot other than that -XX:+UnlockCommercialVMOptions must first be specified in order to use them.
You can download it for free on the web.
From http://www.orafaq.com/wiki/Oracle_Licensing:
A license is the "right to use" (RTU) the software and
not the software itself. If you have a license, you can
obtain a copy of the software through whatever means -
order, download, use the CDs from your last project, etc.
Please note that Oracle doesn't use software keys. You can
just install the software and use it. It is up to you and
your consciences to license the software before using it.Some of the key points of Oracle's Java SE strategy[2] are:
* Oracle plans to contribute the results of the combined Oracle Java HotSpot and Oracle JRockit JVMs to the OpenJDK project.
* The Oracle JDK and Java Runtime Environment (JRE) will continue to be available as free downloads, with no changes to the existing licensing models.
If you'd like to learn more about it and the ongoing JVM convergence work, I'd recommend reading Henrik Ståhl's blog post from last year here:
http://blogs.oracle.com/henrik/entry/oracles_jvm_strategy
- Henrik is Senior Director of Java Product Management at Oracle and runs a group responsible for product strategy for Java SE, among other things.
Dalibor Topic, Java F/OSS Ambassador, Java Product Group @ Oracle
[0] https://twitter.com/#!/mreinhold/status/142122264220008448
[1] https://twitter.com/#!/mreinhold/status/142102137130844161