Understanding how free and open source tools let us get our job done better than ever.

This is the penultimate article in this series, and today’s topic talks about the tools of the trade, and the amazing thing is most of them are both free and open source.

Defining terms

If you watch any TV shows about geeks, you know that we care about the most ridiculous things. Case in point, Silicon Valley has been able to get a great deal of mileage out of tabs versus spaces debate. Another way to get us worked up is to try and define the difference between free and open source software.

Here’s Wikipedia’s definition:

Free and open-source software (FOSS) is software that can be classified as both free software and open-source software. That is, anyone is freely licensed to use, copy, study, and change the software in any way, and the source code is openly shared so that people are encouraged to voluntarily improve the design of the software. This is in contrast to proprietary software, where the software is under restrictive copyright and the source code is usually hidden from the users…Wikipedia: Free and open-source software

Where as, Ricard Stallman of the Free Software Foundation, has this to say:

The two terms describe almost the same category of software, but they stand for views based on fundamentally different values. Open source is a development methodology; free software is a social movement. For the free software movement, free software is an ethical imperative, essential respect for the users’ freedom…Why Open Source misses the point of Free Software

On the outside chance that Richard Stallman will read this post, or our paths will someday cross, I apologize in advance for blurring the difference between these two very different ideas. In my defense, most of us use these terms interchangeably; and in practice, most of the open source tools I use on a daily basis, are both free and open source. Now I’ve got the disclaimer out of the way, lets move on.

Turtles all the Way Down

As in my previous article, The Business of Development Part 3: The Serverless Solution, let’s start by looking at the tools I use to create, host, and serve this post. Nearly ever tool involved in producing this site is free and open source.

My editor of choice for development and text is Microsoft’s Visual Studio Code (VSCode). One of it’s closest competitor’s is WebStorm by JetBrains. It’s a great tool, but not only is VSCode free, I think it’s also better. To see why, go to my VS Code v IntelliJ article. VSCode closest rival, is Atom, a free and open source editor from GitHub. Not only are the two apps remarkably similar, they are both based on Electron. This is a way of creating desktop apps using web technologies. Which, in turn, is based on Chromium, the open-source version of Google’s Chrome browser.

My site tools are nearly all free and open source. My posts are written in the Markdown markup language. While Markdown is actually a format, it has become widely accepted, and many sites use it; including, GitHub and Stack Overflow. I use the Jekyll blogging system to build the site. I use Git for version control, and the site is hosted on GitHub, via GitHub. GitHub the site is a hosted version of Git. I should point out that I have a paid GitHub account, and store my content in a private repository, but GitHub is free for open source projects.

On the development side, I’m using a bunch of free and open source tools and frameworks. For package management, I’m using the Node Package Manager (NPM). I use Angular and React to build web sites. For mobile apps, I use Ionic and React Native. Even the operating systems I use, are either completely free and open source (Linux and Android), or use open source components in varying degrees (MacOS, Windows, iOS). In fact, the list of free and open source software that I use is so long that it’s pointless to try and list them all.

No free lunch

Apart from the companies I mentioned by name, most of the projects mentioned here are run by commercial enterprises, and some of them are really big: React (Facebook), Angular (Google), VSCode (Microsoft), Node and NPM (Joyent/Samsung). Other big players include Adobe, Amazon, Apple, IBM, Oracle, and SalesForce.

As we like to say if you’re not paying for the product, you are the product. Yes, some of this companies were started by hippies and assorted idealists, but at the end of the day, they are not in it for love. Yes there is any element of enlightened self interest, but not enough to keep the lights on and the data centers running. I don’t think there is one definitive explanation, but this Quora question, provides a really good summary. So open source and free software, comes from many places and some of its providers have no problem with charging high prices for their other services. Overall, I don’t think we have suffered. The question is does it really matter, if we all benefit, what’s the harm.

Lasts words

I don’t know how long I’ve been using free and open source software, but it’s certainly been more than ten years, and could even be close to twenty. Certainly, in my time working in web and cross platform mobile, nearly all my tools have been free and open. It’s been working for me, and I don’t see how or why it should. Furthermore, my future plans as an independent developer are based on using free and open tools and platforms.

Looking Ahead

Almost done. In the next and final article in this series, we will tie up the loose ends. I will also give an answer to the question I asked in my first post:

Why do I think I have a chance as an independent developer?

See you then.