My Italian reader might have read an “article” of mine dated back into 2005 (yes it’s a PDF… at the time I had no blog, I only posted a couple of things around, and this one has been written in LaTeX; one day I’ll replace it with a blog page instead, probably). In that article I put in words my feelings that the heavy dependency on MySQL for the Free Software community would have been a problem on the long run.
My reason to write that was that the dual-licensing would have most likely caused gripe and problems if patches weren’t accepted to be released for the dual license, and that a fork of MySQL would easily become incompatible with itself, causing interoperability problems between versions. No, I didn’t write this last week and back-dated it; there are witnesses who read it, and disagreed, back then. On the other hand, I feel like I nailed the problem quite well.
Indeed with the acquisition of Sun by Oracle, quite a few people seem to worry about the destiny of MySQL, and at least one major fork started.
Now, I have quite a few technical gripes with MySQL; partly because I had to fight hard with it when it was still in version 3 and it was quite limited compared to PostgreSQL, partly because I had recently to try fixing its definitely stupid build system based on autotools (calling that autotools is quite an offence in my opinion). So my usual setup makes use of PostgreSQL instead (both this blog and xine’s bugzilla use it). I had unfortunately to deal with MySQL in the recent past as well but that’s fortunately gone now. So myself I’m not really worried of what’s going to happen.
I guess that one thing that I should be glad about is that we’re not still in 2005. Back at the time, most of the web-application that went to be used were very specifically written to work on MySQL. If MySQL was to be forked, like it’s happening now, at the time, then we would have had probably a major problem at our hands. Nowadays, most of the applications, for good or bad, use ORM libraries that tend to be written in such a way that the underlying database is not called directly (I say “for good or bad” because sometimes I get to hate the ORMs quite badly; but on the whole I can see why the abstraction is necessary — no I don’t think that we should all be learning how a CPU work to write software; while that helps it’s no longer strictly necessary).
Anyway, I hope that whatever the outcome, this is going to be a lesson for everybody out there never to rely on any specific piece of code: there is never anything telling what upstream might end up doing… be either killing his wife or selling to the probably biggest company working in the same software area.