The biggest problem here is the risk of the JVM losing its suitability for large, scalable projects. Currently JVM on Linux is $0 in licenses. No matter what $N is, it's ∞% more than 0, and the added cost of scaling to X servers is X * N, not 0. Plus, of course, the ridiculous, soul sucking calls with a "consultant" who will try to sell you Oracle licenses and insists on being your pal and "how about I come out on Wednesday, these discussions are easier face-to-face" to actually procure the bloody licences - and then sends you an Excel sheet with 15 different term and payment options that you then have to spend an afternoon parsing. Better for a cash-strapped start up to go with something free instead.
This is exactly the reason Microsoft has a BizSpark™ programme, and Ruby doesn't.
I read your reply twice and still can't see how it has anything to do with the subject and the patch being discussed. That's a pretty large leap from "we might want to have paid commercial features" to "JVM losing its suitability for large, scalable projects".
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.
The scenario I anticipate is the one where Oracle adds something generally useful to the JVM as a commercial feature. Off the top of my head, there's stuff in the memory management area such as a better GC or access to off-heap memory, or goodies for dynamic languages such as tail call optimization.
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.
BizSpark is a program to give software free to cash-strapped developers. He's saying that being free gives you a huge boost from grassroots support. Ruby doesn't need to do anything special to get this support because it is already free. The Microsoft stack is commercial, though, so they need to have a whole specialized program just to almost level the playing field.
BizSpark is a program that gives free Microsoft software to startups and small businesses for three years. From my understanding, it has nothing to do with cloud platforms.
BizSpark members get a bunch of free Azure resources as part of the package, but I would guess that isn't really a big part of the selling point for most who actually use the program.
BizSpark isn't a cloud platform. It's a program by Microsoft that gives free licenses to startups. They also have a similar program for students called something like DreamSpark. It's just like a drug dealer saying "the first hit's free" :)
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.
The licensing on a MS software stack is nominally crazy-expensive, BizSpark provides lower-cost (or free) licenses for Windows, SQL Server, etc. to smaller companies to make it possible for startups to use MS.
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.
It's interesting to compare this to Microsoft's languages (e.g. C#). They give away the platform (other than the OS, of course) for free and make their money on development tools (Visual Studio, Team Foundation, etc.)
They can do that because they have integrated commercial software into the platform. When someone is using .Net, there's a high probability that it will run on a Windows server and probably also use MS SQL. That's where they get their money from. In the Java world they are more likely to use open source alternatives like MySQL and PostgreSQL, rather than 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.
What?!!? When did they start charging for the runtime? Admittedly, it has been a while for me, but I remember the runtime and the SDK being free. Is my information out of date, or are you confusing it with Visual Studio?
It's very unlikely that the license to run the commercial JVM will cost the same as a license to run the Oracle DB. These are two very different beasts.
In fact, I would guess that the cost of a Windows server license would be something of a benchmark for the price of the commercial JVM license.
The important thing to note from the source comments:
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.
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.
No. Every EULA you'll click through will include some clause restricting usage to 30 days for evaluation purposes, except in a few cases (db client, beta versions, XE edition, Technology Network stuff, Linux etc). And they do enforce that clause as soon as they find you're using any of their stuff. Plus, you need an account on their site to download pretty much anything, so they'll know what you download, and from time to time you might get a call to see how that "reviewing" is going, especially if you are not a customer yet.
It makes it very easy for people to get access to software and to learn, however, especially if they're covered by a company who is already a customer.
How does that play with the fact these changes seem to be checked into the GPL'd code? Wouldn't GPL itself give you a separate license to use the features regardless of whatever EULA Oracle comes up with?
When reading blocked quotes like above, the iphone browser farts and cuts off the text at the right-most ending. I notice it only happens with the <code> construct, which is used regularly here.
I always thought Oracle's enforcement mechanism was to leave ORA-00600 (internal error) exceptions scattered in various code paths throughout the database. In which case you need to contact support for their workaround, and for the support you need the license.
The commercial option specifically mentioned in this patch is "Java Flight Recorder" which I think refers to features of the proprietary JRockit JVM that Sun/Oracle had planned to make more freely available through OpenJDK into the Java 8 release http://en.wikipedia.org/wiki/JRockit
If nothing else, this proves that Oracle is serious about OpenJDK. If they weren't planning to continue to provide the commercial/patented features under the open source license, why have a gate/switch to disable them ?
As Mark Reinhold, Chief Architect for Java SE at Oracle, pointed out on Twitter [0], that patch was meant for Oracle's product VM, a minor fork of OpenJDK, which has
"commercial features" just like other vendors' VMs. Since it was checked into OpenJDK by mistake, it has been backed out of OpenJDK again within 24 hours[1].
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:
This is exactly the reason Microsoft has a BizSpark™ programme, and Ruby doesn't.