Twitter is abuzz this morning with MySQL news:

What these messages refer to is that Oracle dropped InnoDB from the free Classic Edition, it is now only available starting with the $2,000 Standard Edition. A few days ago we heard support prices were increased – none of this should come as a surprise, the writing had been on the wall ever since Sun’s acquisition by Oracle. And of course it’s not only MySQL, all Open Source products are on uncertain grounds – there’s a reason why many of the OpenOffice folks split off and are now supporting the new fork, LibreOffice.

I don’t pretend to be the Open Source expert, thankfully we have one, Krish, who recently chimed in on the issue. What I want to do this morning is to take this opportunity to publish an internal email from a smart software CEO who instructed his teams to migrate away from MySQL several months ago. While he wishes to remain anonymous, this is not a leak, I am publishing it with his permission. (Yeah, I know, a leak would have made this story a lot juicier…). Here’s the email:

I posted this internally to an employee question why I am asking our company to move away from MySQL towrds Postgres (instead of Ingres):



I would answer the “Why not Ingres” with one word: GPL.

Let’s step back and think about the “People are angry with what Oracle is doing with MySQL” statement. Actually why could Oracle do this with MySQL? How was it possible for Oracle to do this? After all MySQL is “open source” and could be “forked” right?

To be honest, I had long anticipated this move on the part of Oracle. Unlike Linux, which has what I call the Torvalds-interpretation-of-GPL, which kind of makes it in effect LGPL for the apps written on top of Linux, MySQL has the original and strict Stallman-interpretation-of-GPL. So an app written on top of Linux, even though it makes system calls to Linux, doesn’t have to be GPL – why, simply because Torvalds decreed it so. But an app written on top of MySQL, even though it connects over the wire and a JDBC driver, has to be GPL – why, simply because MySQL decreed it so; they did it because it would make it commercially convenient for them.

I am not saying that MySQL did not have the moral right to do what they did – software licenses are not about morality, it is about commerce and business. Alas, Stallman effectively enabled this MySQL interpretation through his rigid moralistic stance on software licenses – I don’t consider it a moral issue but he does. So Stallman’s moralism created the MySQL interpretation, which then allowed Oracle to acquire them and make life hard for any MySQL users – basically demand lots of money for shipping MySQL with your software. Eventually, Stallman’s GPL v3, if MySQL were to adopt it, would require us to pay lots of money to Oracle from our services too.

So unless we want to pay large and increasing amounts of money to Oracle, which is a mathematical certainty because it involves Larry Ellison and Money, we should move out of MySQL. Do we want to work hard to ship more and more money to Oracle?

Now Postgres. It is actually BSD licensed. So while it allows anyone to build proprietary versions of it (as many companies do), no company can prohibit another company from shipping the free Postgres version with their software or demand money for it. This is a subtle but very important point.

GPL is basically “Here is our charity to you, but with this money you can only do charity.” BSD is “Here is our free gift to you, do whatever you want with it.” Stallman has long believed in forcing people to be charitable. Needless to say, forcing anyone to be anything, ultimately leaves the door open to evil. The way the door to evil was opened with GPL, interestingly, is surprisingly similar to what happened with the Catholic Church in the middle ages in Europe, which is what led to the Protestant Reformation. The Church had the absolute power to declare what is sin, which in practice meant that the Church could also absolve anyone of any sin, essentially by decreeing it. The Church could grant you “absolution” (forgiveness) from your sins. This evolved into selling “indulgences” for money – commit adultery, robbery whatever and then pay money to the Church to buy an indulgence, which is what Martin Luther found so abhorrent. His theological solution is surprisingly similar to the BSD license.

Stallman created this problem with his “Absolutely No Sin Ever Allowed” rule in GPL. The natural loophole is that the original author of GPL code can allow sin by dual licensing the code – i.e sell indulgences. In Stallman’s theology, we are buying indulgences for the sin of distributing proprietary software.

Torvalds sensed this problem early on, and that is why he arbitrarily imposed his more liberal interpretation on Linux – he could get away with it early on and his interpretation stayed. In theological terms, Torvalds split with Stallman.

Now, do you want another theological lecture from me on why we should get out of Java next? (One word: Oracle).