Setting up my blog got me thinking: Do we really need so many blogging systems? To be specific, I am using an open source static blog generator. There are three different programs for this kind of blog written in the ruby programming language. Of course there are several open source dynamic ruby blogging systems. Venturing out of ruby, there are many blogging systems for all the other languages being used with web programming.
Why does this proliferation occur? Creating a blogging system is not a very difficult problem- lower barriers naturally create more products. But maybe the biggest factor is fun- most of the people who create open source products do it for fun/learning, and it is always more fun to build something from the ground up yourself. Most of my open-source contributions have been modifications to existing systems. For any given problem there is already existing work, so modifiying is always much more productive. But it is definitely not as fun as writing code from scratch.
If you think about it, open source is designed to allow people to contribute to what exists instead of creating something new. For complex problems in which is much more difficult to start from scratch, open source does much better at this.
It is not that I think having a lot of choices is a horrible thing, I just wonder how much better open source software could be with a lot less duplication. But in some ways it is bad. Economists have actually studied choice and concluded that more choices make people less happy, because they end up questioning and regretting the decisions they make. And even if that weren’t true, it took me a lot of time to decide what blog to use, what host to use, and what web server to use. The thing that is good about open source in this regard is that it is usually easy to try out new software. Sometimes it is easier to try software out yourself than try to read reviews or opinions.
Whenever I read interviews with programmers who have created something, it almost always seems the case that they haven’t closely looked at all the alternative out there. I once saw a blog post where someone announced the creation of a simple web service (or maybe it was a program?), and ironically bragged how it only took them several hours to create it. The first comment on the blog had a link to an already existing service that the author was duplicating.
To practice what I preach, I am submitting some patches for this blog software (instead of re-writing it) :)