Rants
Questions
Soapbox
Best Practices
Apply today for a FREE subscription to CIO Magazine!
Tue, Mar 4, 2008 14:27 EST

|
Posted by: Esther Schindler in Questions Topic: DevelopmentBlog: Developer Wisdom
Current Rating: |
When I read the database report from Evans Data that I wrote about yesterday, I noticed that the open-source databases—MySQL and PostgreSQL—fared rather poorly, in comparison to the commercial products (notably Oracle and DB2). Hmm, I thought. Maybe it's a case of "you get what you pay for."
But then I chatted with Evans Data founder Janel Garvin while I was putting the final touches on the article (see Database Developers Users' Choice: Oracle). She pointed out that most open-source developers, particularly as reflected in the company's Linux and Open-Source report, are hyper-critical of their tools. Generally, she says, the developers tend to be less satisfied with the quality of any open-source tool they rate... compared to, say, Windows developers rating commercial Windows tools. Janel and I spent some time musing about the reasons why.
If I were un-fond of open-source, I expect that my opinion would be that developers are simply honest, and that they are perfectly well aware that the proprietary solutions are superior. Except I'm an open-source-friendly kind of gal, and I don't think that's what's happening here.
Instead: I think it's a matter of self-criticism, in this case where "self" is "myself as part of the open-source community."
That is, when you pay someone else to supply a box of shrink-wrapped software, you're emotionally distant from it. You may rant about its inadequacies, but you're essentially powerless to change them, and you have no expectation that your personal opinion will affect the product's evolution.
With open-source software, on the other hand, a developer who sees a missing feature or an unfixed bug has her own skin in the game—or is connected to those who do. There's a sense of personal responsibility. Even if you don't fix the application, you easily can have a sense that it's something that ought to be addressed, darnit, by someone. And, unlike the attitude that one can easily bring to a commercial product ("I wish they'd add that gargleblaster capabilility, but I guess it's not a priority for the company"), with an open-source tool weakness a developer can easily say, "Hey, why isn't that working right, yet? Get on the stick, folks!" Perhaps we are all more critical of our own families than we are of others'.
It's like the old adage about the difference between involvement and commitment, as demonstrated by making breakfast. The chicken who supplies the eggs is involved, but the pig who supplies the bacon is committed.
If this is so, then it's probably neither a good thing or a bad thing; just another unique attribute of open-source communities. (Though it does make it more difficult to compare products!)
But that's just my take on it and I'm going on nothing but gut feel. I'd be interested in other views: why do you think open source developers are (statisically speaking) more critical of open-source tools?
I've used MySQL, Oracle, and MS SQL in a development and performance tuning role. MySQL really is missing large amounts of functionality that is useful for large systems, functionality that Oracle has and MS SQL Server sometimes has. Having said that, I’m at a company creating a SaaS solution so we put up with the limited functionality, such as a weak optimizer, because MySQL scales financially.
I wonder if MySQL has an odd demographic, low end databases of all sorts and the massive databases of Google and Yahoo, with little in the middle.
Hello Anonymous,
Why put up with MySQL's limited functonality? PostgreSQL has most of the functionality you're after - it's more comparable to SQL Server and Oracle - and it scales just as well financially as MySQL does.
Cheers,
-J
Actually it scales even better financially as it have a less limiting licencing, that allows you to do almost anything with the code including closed source products.
It is also much faster than MySQL on modern multiprocessor and multicore hardeware, an as you say it have all the features you expect from a modern database product, and even more important it doesn't use the bait and switch strategy between performance and and functionality.
The full text engine in Postgresql 8.3 beats, most commersial products when it comes to speed. There are good extensions for GIS. Good admintools, both free and commersial. It is possible to use multiple programming languages for stored procedures and triggers (among them: perl, plgpsql, tcl, php, java,...).
After testing it, you wonder why poeple even bother with MySQL. The difference is like day and night.
People who advocate open-source are usually dissatisfied with propriety in the first place. They have a much higher standard for software than the average person. This acts as a pre-filter; those who develop open-source wouldn't be developing it if they standards weren't higher. This is one of those things that are surprising at first but seem obvious after you think about it for a while.
Your logic makes perfect sense, and not only that, I've found the same to be true for end users in the enterprise. When the organization develops a custom tool, the users are super critical of every single element even if it has little to no impact on thier work. However, when we purchase tools for our users clearly labeled as Microsoft or any other brand, the users just assume, "it is what it is."
Great article