Forbes ran an interesting article a couple of days ago about the troubles open source businesses are running into. They face pressure not only from users who use their applications without paying for any of their services but also from big companies like IBM who are getting into open source as well. The article makes some provocative points about how the only open source player making any money is Red Hat, companies like MySQL AB and the JBoss Group are money losers. Unfortunately, the author draws the wrong conclusion at the end:
Because when these open source software providers burn through their venture funding and go out of business, customers will need to either hire teams of expensive techies to maintain that orphaned code or pay someone to rip out the old stuff and replace it with something new. Either way, all that free software is suddenly going to look awfully expensive.
This analysis is utterly wrong. Basically there are two kinds of software out there. Software that’s too big to die, and software that isn’t. If the software is too big to die, then it doesn’t matter whether it’s open source or not. If MySQL AB were to shut its doors tomorrow, the MySQL database would be just fine. Companies like Google and Yahoo rely on it, it’s provided by hundreds of hosting providers, and it’s mature. It’s no more likely to suddenly go unmaintained than Microsoft SQL Server or Oracle.
What about software that’s not too big to die. In my Java work, my preferred method for dealing with relational databases is to create a persistence layer using Hibernate. Hibernate’s author works for the JBoss Group, a money losing open source company. What happens if they go out of business? First of all, Hibernate has enough users that it’s almost certain that somebody would maintain it. (Indeed, someone would probably hire Gavin King to keep maintaining it.) Even if that weren’t the case, I could hire a Hibernate hacker to fix any problems I run into or add features, or I could fix it myself. Let’s say I instead had decided to purchase a Java ORM package instead, and that the company goes out of business. In that case, I’m guaranteed to have to pay someone to rip out the orphaned code and replace it with something else, because the fact that I don’t have the source code leaves me with no other option.
I’m surprised that people still argue against open source software by making this unfair comparison — commercial software that’s going to be around forever versus open source software that could suddenly find itself unmaintained. When you compare apples to apples, the advantage goes to open source.