Hacker News new | comments | show | ask | jobs | submit login
Oracle checks in -XX:+UnlockCommercialVMOptions in JVM (java.net)
80 points by spariev on Nov 30, 2011 | hide | past | web | favorite | 44 comments

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.

How exactly does an open source programming language compare to a cloud computing program from Microsoft? I don't really see the link, at all.

Or are you equivocating Ruby with Rails running in a cloud platform? Your last sentence doesn't really parse well.

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.

Strikes me more as an equivalent to "first hits free" where the hidden cost is as you scale you'll just end up paying more.

But that makes more sense thanks, I don't normally deal with Microsoft products in that fashion.

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...

And so it begins.

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 will fare well for Oracle.

I was thinking more like farewell to Java

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

Could it mean more money for us Java developers?

Probably not.

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.

> That take money out of the budget for Java talent.

Unlikely: The C# runtime costs money, yet C# devs are as well paid as Java devs.

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?

I'm referring to Windows.

The .NET runtime doesn't cost money. The tools to write .NET programs cost money. Some of them.

The .NET runtime is a part of Windows which costs money.

Mono falls in the same category as OpenJDK: Not relevant for this discussion.

The money Windows cost are nothing compared to Oracle fees.

You can buy Windows server editions for less that a developer's week salary. You'll need MUCH MUCH more than that for Oracle.

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.

Sure, if you have stock in Oracle, otherwise, who knows.

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.

Should read "Currently, there's no enforcement mechanism..."

There's no software enforcement mechanism in the flagship Oracle Enterprise DBMS either.

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.

Does that means that I can legally use their software free of charge if my conscience doesn't prohibit me from using it unlicensed?

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?

Last I checked, the GPL didn't seem to grant the right to actually use anything.

Not if they are patented (and you reside in a country where software patents are valid).

I know there is a lot of debate about it, but as far as I understand it GPL is still regarded as including an implied patent grant. Fwiw:


Warning; Completely off topic:

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.

Any ideas how to fix it on my end?

2-finger scroll.

The <pre><code> blocks are supposed to be displayed as-is by the browser, so if they don't fit in the current view, they need to scroll.

They don't need a technical enforcement mechanism. Their enforcement is a pack of license auditors sent into your company to verify compliance.

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.

Should start your comments "Currently not wearing a tinfoil hat..."

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 ?

The -XX:+UnlockCommercialVMOptions flag has been removed from OpenJDK (http://j.mp/u9gAJ9). It was pushed to an open repository by mistake.

Not sure why this hasn't been upvoted more, especially as it is one of the most relevant posts I've read in this thread.

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:


- 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

[2] http://www.oracle.com/us/corporate/press/173782

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact