I use open source because I’m lazy.
Not in that I don’t want to work, or in that I cut corners. I’m talking about the kind of laziness that breeds efficiency. You know what I’m talking about if you’ve ever ordered take-out while moving into a home or apartment, or worked as part of a study group — it just makes sense to do it that way.
It turns out that it’s not all that uncommon a trait in programmers, developers, sysadmins, and geeks in general. It’s the reason why services such as SSH and VNC were written (why walk across the building or drive across town every time you wanted to modify a server setting?). It’s why we have modern object-oriented programming languages, and why every modern language used in software development has a shared library of common functions and data structures: C++ has the Standard Template Library, Perl has CPAN, PHP has PEAR, and so on. It’s common sense, really — there’s really no sense in building your own wheel if you already have one available to you.
The geek-minded laziness I refer to above also does another interesting thing: it inspires community. Hence, open-source software. If I want to put up a website with good, secure, well-written code that I can build on and maintain easily, chances are that I’m not the only person who wants to do the same thing. And if, instead of building our own content-management system or blogging software from scratch for every website that we ever create, we pool our resources and build some software for all of us to use, it becomes incredibly easy to set up, customize, and maintain our websites. When we contribute our changes and fixes and methods back to the community of people that want this software, the entire process becomes even easier.
We reap mutual benefit from not trying to reinvent the wheel (CMS software, in this case) over and over again, so we work together to build and mass-produce a bunch of really nice, really well-built wheels. And by making the plans for the wheels available (source code), we make it easy to modify, customize, and improve those wheels. It’s not just limited to wheels, either — it turns out you can build a lot of tools this way.
That’s why you see software like WordPress and Drupal used all over the place, and more modular add-ons for both of those than anyone could have ever imagined. That’s why I balk at building a custom PHP-driven online storefront when I know that Drupal and its e-commerce module can do the job better, if not just as well. And it’s the reason that when I find a bug in a Drupal module or a WordPress plugin, I always try to fix it and post the patch on the appropriate forum: so that when I encounter the problem again, I don’t have to retrace the steps, and neither does anyone else.
It actually turns out to work pretty well for everybody this way. Imagine that you’re my client. Would you rather have me build you a site entirely from scratch for $5,000 and have to come back to me every time you wanted to add a feature or fix a broken page, or have me build a site using one of the software suites above for $1,200 and go to whomever you want when it come time to upgrade or fix something (or even better, do it yourself for free!)?
It means that I have to work much more to make a decent living, but it makes life much simpler for everyone else in the long run — myself included. Every website, server, desktop, handheld device, cell phone, and toaster that’s built on open-source software is simply easier to work with and maintain, which means that it costs less to work with and maintain.
Which means I can keep being lazy. 🙂