Uncomfortable truths

Neil Gunton has written an interesting article debunking some common Open Source myths. I agree with most of what he says, and have made similar points myself in the past. Some of the Slashdot thread ensuing from Neil's article is predictable - software is theft, all commercial software needs can be met by HobbyHackers, gratis vs libre blah blah blah, but some of the people commenting do understand and agree with Neil's points, which is refreshing. I don't believe that either closed or open development is necessarily better than the alternative approach. I've seen some goddam awful closed source products, and some equally bad open source ones. Some people inside Sun seem to believe that Closed Source is a dead development model, but I personally just don't buy it. Both open and closed source approaches can yield high quality products with short development times, the key factor is the the team who are working on the project and the tools and techniques they are using, not whether they are from Lilliput or Blefuscu.

There seems also to be a great deal of confusion over the interpretation of the term 'Open Source'. Quite often people assume it necessarily implies Open Development, but I believe the two concepts are entirely different:

  • Open Source
    The source code for a piece of software is available without restriction or cost.
  • Open Development
    Anyone who is so inclined is able to contribute to a project without restriction.

Whilst Open Source undoubtedly exists, I'm not so sure that Open Development in the widest sense actually does. I've been looking at several Open Source databases over the last couple of days, and to take just one example, while MySQL is Open Source, it certainly isn't Open Development. Although it is possible to get patches back in to MySQL, it has to be done by submitting them to the MySQL developers, and when you look at the release notes and development roadmaps for MySQL it is quite clear that MySQL AB (the company) is in complete control of MySQL (the product). Even Linux isn't completely Open Development - Linus keeps a very firm rein on what goes in to Linux, as Bryan Cantrill points out, the Linux LTT folks have been trying to get their stuff integrated for more than five years.

That's not to say there aren't extremely good reasons for this state of affairs - letting everyone who had the whim integrate their changes willy-nilly would lead to anarchy and permanent brokenness. However, when evaluating the 'Openness' of a piece of software, the discussion seems to centre entirely around if it is Open Source - possibly because it's a much easier, almost binary, distinction between 'Open Source' and 'Not Open Source'. Evaluating how a project ranks with regards to Open Development is is much harder - there is a wide continuum of how easy it is to contribute to a project, and of the restrictions which control how you may contribute. MySQL is obviously not Open Development, Linux is more Open Development, but not completely so. Some 'Open Source' projects also require assignment of copyright to the project if any contributions are made. Again there are often very good reasons for this, but it doesn't seem exactly 'Open' if I contribute something and it ends up being owned by someone else.

At the moment Open Source is Soup de Jour, and it is interesting to see how different companies react and adopt their business models to encompass it. It's often convenient for companies to be able to fill in the 'Open Source' checkbox whilst keeping tight control of their intellectual property. I'm not implying this is a necessarily bad thing, after all they have a responsibility to their shareholders to protect their assets. However it's interesting to note the lack of discussion around what access to source code actually means in practical terms. It appears that most of the Open Source bigots can't and/or don't want to distinguish between Open Source and Open Development, and that some companies are taking advantage of this to jump on the Open Source bandwagon whilst continuing to behave exactly as they did before.

Categories : Tech

Elbonian database technology, part II

cp kindly commented on my last post regarding Open Source databases, and suggested two others I should go look at, SapDB/MaxDB and Firebird. I looked at MaxDB, and it is a re-branded and enhanced version of SAP DB, SAP AG's open source database. It has been taken over by MySQL AG, and it appears that it will eventually be merged into MySQL. It therefore doesn't look like a particularly good choice, as it might not be around in the future.

I then went and looked at Firebird. This started out as Borland's InterBase product, which they released as open source in 2000, then changed their minds and tried to close it back up. The result was a fork - the original Borland code was taken and rewritten in C++ (no, I have no idea why) by the Firebird community (including the original Interbase author) that developed around the original Borland code release. It's an interesting story that anyone who is thinking about open sourcing a large piece of software (*cough*) should be aware of. The documentation is a bit thin - the Firebird website relies heavily on the Borland docs, but it seems to be a mature product, so I'm going to give it a whizz.

Categories : Tech, Work