Free Software, Open Source and why you should tip your waiter.

There is a long-standing debate that goes back to at least the mid-1990s around the difference between “freeware” and “open source” software. Both camps in this debate have generally agreed to separate these with the ideas of “free as in beer” and “free as in speech”. Lately, I have been acutely aware that there seem to be some misconceptions about those terms.

In the six months since my association with the company formerly known as SparkPost ended, I have had the opportunity to work on several commercial, free, and open-source projects. Some of this was in the process of helping friends build startups. Some of it was in developing my own personal projects. Some of it was in the process of rebuilding commercial applications from Aasland. All of it was due to my inability to say “no” to an interesting project. Along the way, I have had to explain the differences in these models many times, so I thought it was worth a blog post.

The concepts are pretty simple. Freeware is meant to be provided at no charge (gratis). This is where the free as in beer” idea comes in, although I would argue that beer is not free – someone had to pay for it. This is not the same as “Free” software as defined by the Free Software Foundation in which they mean “free as in speech”, from a legal encumbrance point of view. As in – you are free to use it as you see fit and do what you like with it, just like words, sayings, and phrases that are not specifically under copyright. The phrase “Hang in there” can be used by anyone anywhere without any legal consideration to the originator of the phrase.

Open-Source” software is like “Free” software but meant to be used and distributed in a way that enables users to access the source code and spawn their own copies, modify as they like, and contribute their own modifications to the source if appropriate. Open-source software always includes a license that outlines the usage, rights, and responsibilities to be adhered to which may include the ability to create or sell derivative works. This is really the core difference between the two models. Neither is required to be monetarily free as in “zero cost”

Wait, what? Free or open-source software can be sold for real money? What Twilight Zone episode did I fall into?

Yup. If you work in the software industry, that statement should not be a surprise, but if you don’t then the terminology can be confusing. The word “FREE” here is problematic because most people automatically associate that with money and in fact, it is meant to refer to legal encumbrance; the French term “libre” is more appropriate. The term “open-source” can also be confusing to laypeople as it implies an open-book, or open access, which is also not really true. Open-Source is really about sharing access to the code under the conditions of a usage license. The other more commonly understood model is closed-source or “commercial” software that has always been proprietary and came with an expected price tag.

A discussion of these models would not be complete without also looking at “Open-Core” which lives somewhere between commercial and open-source. Open-Core software, while possibly controversial, includes many very commonly used and very powerful applications that have both Free-and-Open-Source as well as closed-source commercial components. Kafka, GitLab, Cassandra, and MySQL all fall into this category.

To highlight this with a few examples,

  • Microsoft Office is a closed-source, commercial software. You buy it off the shelf with no expectation of altering or examining the source code.
  • Suse Linux is an Open-Source operating system where you can download a free version, but the Enterprise server comes with a price tag. In both cases, you have access to at least view the source code.
  • Blender, one of my favourite 3D graphic modelling tools, is Free and Open Source Software (FOSS) which is a hybrid being both free AND open-source.
  • MySQL mentioned above is probably one of the best-known Open-Core model offerings. The community version is available to anyone who wants to download and install it on their own, and the source is always available here. The Enterprise version is professionally supported and comes with a price tag.

But why would anyone want to pay for “free” or “open-source” software? Well, there are a number of reasons and mechanisms that are not that hard to explain.

  • Commercial software leans on a tenet that it is “better” because it is funded and they can afford to make changes and updates. But if open-source software was funded the same way AND it had a community of developers contributing updates, wouldn’t that actually be even better?
  • Open-Source software can provide a community-developed application that has optional paid support for mission-critical solutions. Here you get the best of both worlds.
  • Paying open-source developers for their work encourages better applications while providing an opportunity for you to influence development. That could be a whole lot cheaper than paying dedicated developers to build custom software for your own use.

That last point makes me think of the many years I worked in the hospitality industry serving in restaurants. Most people have had the experience where the waiter pre-emptively brings that glass of water you were about to ask for or anticipates your need for extra hot sauce based on the last 3 weeks of orders. The waiter did not HAVE to do those things, and it did not cost YOU anything, but it did come at a cost for someone. That waiter invested time and energy and expertise in making your experience a little better, much like an open-source developer does.

The “free-like-beer” concept mentioned at the top is relevant here too. You might be able to download a free beer recipe and make it with some ingredients you provide, but the work involved in creating and perfecting the recipe costs someone something. It is completely fair to provide some support to the creators to encourage more development as much as it is right to generously tip that waiter. Beer is not monetarily free no matter how you brew it so if you can purchase a case of beer and get the recipe as a bonus, isn’t that a great world to live in? Donating to projects that don’t specifically charge fees, is also a great way to encourage awesome community projects in the same way that tipping a good waiter encourages better service.

I guess the point here is that If you have found an open-source project that solves your problem, comes with a reasonable (possibly optional) price, but also provides you with access to use and modify the source code as you like, that is a pretty huge bonus that is worth paying for. It could save your own development team years of work, time, and money. The thing is that those projects need to be supported or they will perish. If you don’t tip the waiter for doing a great job, they will go find another line of work where they can get paid real money and you might lose your favourite waiter. It is not just polite, it is a matter of survival.

So if you use open-source software, make a conscious effort to check the README and CONTRIBUTION pages to see if there are ways you can support the work monetarily or with code enhancements. I guarantee you the work cost someone something and your financial support will be appreciated. Oh and if you happen to have a great experience the next time you are out for dinner, remember to tip your waiter.

Be Awesome; Change the World.





Leave a Reply

Your email address will not be published. Required fields are marked *

About AASLAND TECHNOLOGIES

This is a place to explore interesting technology and share ideas. You can visit the social and main web sites for Aasland Technologies using the links below.

The less technical alternate blog is at TheBleedingEdge.ca

Newsletter