Deprecated: Function create_function() is deprecated in /var/www/blog/inc/libs/clearbricks/common/lib.l10n.php on line 640

Deprecated: Function create_function() is deprecated in /var/www/blog/inc/libs/clearbricks/common/lib.http.php on line 249
Why "open source" is bad - Grumpycoder
Flux RSS

Why "open source" is bad

This one came a long way. I'm an active open source supporter, and I probably intend to stay that way for quite a while, but I finally came to realize that open source is sometime a very bad thing. But let me explain before you start throwing tomatoes at me.

We actually live in a very strange world, where people still think of "free" as in "free beer". Which is also the reason why piracy is still very popular. And probably the reason why google is so successful as well. But the FSF isn't about free beers, it's a state of mind where people are sharing their knowledge to the world, where ideas are free of bounds and patents, and where people can build their derivative works.

Now I won't explain why GPL is bad. I guess a lot of people know that. The base idea is interesting, yet it prevents some creative works, and also endangers some projects with license conflicts and all. A very simple example is ffmpeg or XviD, which licenses are virtually forcing any game developer around to use Bink instead for their pre-rendered videos - which is probably the only single reason why bink is popular among game developers.

No, the current problems I have with open source are "quality" and "popularity". And this isn't a new trend at all. Basically, what I'm saying is that since open source mainly rhyme with free beer for a lot of people, then it has to be good, right ? Now, really. Are all of the open source projects around here of high quality ? I don't think so. MySQL is a first very good example. The only two arguments why it is popular are "it is free" (as in "free beer") and "it is fast" (and time is money). So when we compare to his biggest concurrent, Oracle, these arguments are prevailing. But quality doesn't. How many people who are reading this are running a MySQL database ? This blog currently is running on MySQL. How many people who are running MySQL are on a constant fear of having to repair a corrupted database ? How many of you actually HAD to repair a corrupted MySQL database, or even had to restore from backups, as the status was absolutely unsalvageable ?

But MySQL prevails because it saves money in the short term. And its quality isn't really there, but, meh, that's okay, right ?

Now let's face it: there are tons of open source projects around here who are really popular, but their quality are but a joke. Let's have a sweep, web first. PHP, which is but a joke of a language, popular only because it's free. Ruby on rails, one of the slowest thing on earth, but which main quality is to be superior to PHP in robustness. And our all-time winner, tomcat, which is just a school experiment at first, but became a "production" software just because the java-servlets alternatives are costing money. I mean, I had to explore its source code at times, and really, it made me want to shoot myself. Yet this kind of code is being put into production, for the sole reason it doesn't cost money.

On various other kind of projects, we also have CVS, which popularity grew only because it was free, then SVN, which was based on the idea that CVS was terrible, and tried to "do CVS right". But according to Linus, there's no way to do CVS right, which is the reason why git was created. Probably the "first" high-quality, free software SCM out there, only... it doesn't support windows very well, nor GUIs. But at least, it's free, right ? See, we have this cascade of "oh my God, this software is terrible, let me redo another one that serves the same purpose". I mean, at least, the idea that these softwares are terrible isn't new; people are admitting it. Yet their popularity remains.

Oh, I'm not saying that the non-free alternatives are always good. Visual Basic is a good example of a language and environment that's popular, yet terrible. But I'm saying that most of the terrible-yet-popular open source projects out there are popular only because they're open source. Nothing else would make anyone choose to go with these projects otherwise.

But the problem widens. Because, well, open source software doesn't indeed cost a dime, but the simple fact that people's mind are tuned to say "open source = good" enables other people to jump on the bandwagon and create open source projects that immediately become populars. Yet they are not softwares. My recent experiences and examples about it are Arduino and Makerbot. Let's face it: these projects are terrible in quality. There are a few alternatives of projects that are good 3d printer alternatives, and hundred of alternatives for development boards. Yet Arduino and Makerbot are prevailing because: 1) they are open source and 2) they save you time by giving you a kit that contains everything. Good "open source" 3D printer alternatives are repraps for instance, but building one is complicated, because you need several different kind of parts from different people. Good "full kits" alternatives for 3d printers are also available from some other resellers, such as makergear, but they're not popular because they are not open source. And the Arduino project... ugh, don't get me started. I'll probably have to make a full post just talking about how bad Arduino designs are. Both on the electronics, and the software parts. I mean, nothing's good at all in these boards. Nothing. Except they are "open source", hence popular.

So now people are making money based on bad-quality open source projects, by selling popular physical products, just because they have the "open source" stamp on it. That's where we start getting very, very wrong.


Oh, and I forgot about open source trolls. Mix these with hardware products, and that gives you an horrible time. Here's a very nice example.

Fatal error: Uncaught Error: [] operator not supported for strings in /var/www/blog/inc/core/class.dc.postmedia.php:61 Stack trace: #0 /var/www/blog/inc/core/ dcPostMedia->getPostMedia(Array) #1 /var/www/blog/cache/cbtpl/29/59/2959320ca61719bec433f91e69098e86.php(137): dcMedia->getPostMedia('24', NULL, 'attachment') #2 /var/www/blog/inc/libs/clearbricks/template/class.template.php(268): include('/var/www/blog/c...') #3 /var/www/blog/inc/public/class.dc.template.php(231): template->getData('post.html') #4 /var/www/blog/inc/public/lib.urlhandlers.php(122): dcTemplate->getData('post.html') #5 /var/www/blog/inc/public/lib.urlhandlers.php(523): dcUrlHandlers::serveDocument('post.html') #6 /var/www/blog/inc/libs/clearbricks/url.handler/class.url.handler.php(166): dcUrlHandlers::post('2011/01/17/Why-...') #7 /var/www/blog/inc/public/lib.urlhandlers.php(187): urlHandler->callHandler('post', '2011/01/17/Why-...') #8 /var/www/blog/inc/public/prepend.php(156): dcUrlHandlers->getDocument() #9 /var/www/blog/ind in /var/www/blog/inc/core/class.dc.postmedia.php on line 61