· 2 min read
The price of free software for a programmer
Free software isn't free of charge: giving improvements back to the original projects is a responsibility that also pays off.

Episode rescued from the SeViR Notes archive and translated from Spanish. Originally published on January 16, 2015.
We often equate (even within the IT world) Free Software with FREE OF CHARGE. I hear plenty of clients tell me “Use free software, it costs nothing, so it’ll be cheaper.”
The usual way to argue this always starts with Free as in freedom being different from free of charge, a confusion that comes from a poor translation of the word FREE in Free Software, the original English term. But even so, when we think of Free Software, we think of free of charge.
Now, this view isn’t entirely wrong, because Free Software generally doesn’t involve an upfront payment or pay-per-use (I say generally, which doesn’t mean always). But that doesn’t change the fact that, first, it has cost someone time and effort to produce it (and therefore money), and second, if at some point we find a problem and, as programmers, decide to fix it because we use the software in one of our own projects, it is also our responsibility to communicate those changes to the original authors so they can incorporate our improvements.
At DIGIO we have often improved lots of Free Software tools, and many times, through lack of time, we fail to realise that passing those improvements back to the original project is not only a responsibility, but also leads to future improvements that others can build on top of our changes, which we wouldn’t get otherwise. So it’s a bet on saving ourselves effort and work in the future.
The cost of contributing these changes to Free Software projects is almost always much lower than the cost of the future improvements we’ll get in return. And even if it isn’t, at least our effort and dedication won’t disappear along with our project; instead, others can take advantage of our work to improve it and carry it forward.
Anyone who knows me knows I’m not a complete Free Software zealot. I use it and I’ve collaborated on and contributed many changes to many projects, but that doesn’t stop me from seeing weak spots in the approach, such as excessive fragmentation into derived projects or a heavier email load (you can’t imagine how many emails GitHub can send you once you start making big contributions to Free Software projects). Still, I think it’s important that the work we do has a life beyond the little we can develop in-house, and that is the price we must pay for developing with Free Software.