With the exceptions that I have noted in previous posts, I endeavor to use only software that is free as in freedom. Even in the course of my day job as a web developer, I use an entirely FOSS software stack for development. When it comes time to test what I have written, I break out non-free web browsers, but only to ensure that the end users don’t suffer. While this assuredly enables the continued propagation of non-free software, it is a decision that is made by my employer and thus out of my control.
The office in which I work is an “open floor plan” – such a layout has many advantages. In my opinion, the greatest advantage is the ability to very easily collaborate with my fellow developers. This collaboration is also the cause of almost all of my workplace consternation; Invariably, when I start “talking shop” with one of my fellow developers, or having them look at some code on my machine, the questions about my web browser choice, editor choice, and choices of other programs start. The editor question is generally the easiest to field, but as soon as I mention why I use Icecat as my primary browser, my fellow developers’ brains turn off and their mocking ensues. I am not trying to show that I am a victim here. I am just astounded that people who make their living coding cannot see the value of free software. One of my co-workers in particular seems oblivious to the fact that the code he works with everyday in only possible because the authors of the underlaying libraries saw the value in free software and released their libraries as such.
It is the developers who have the skill-set to appreciate the technical merits of free software. A developer can look at the code and recognize the beauty of the collective thought that went into the codebase. A developer can look at the code and recognize ugly parts and make those parts beautiful. A developer has the power to ensure that the code he creates in free as in freedom and respects the rights of his users and his fellow developers. And yet, it is developers who hold back the growth of free software. We do this by agreeing to make non-free software (this is something that I have done, and continue to do in my day job). We do this by using free software and not helping to fix bugs that we find in it. We do this by questioning other’s use of free software. We do this by allowing ourselves to use non-free software and implicitly give our consent for the continued development of non-free software.
In an effort to make sure that I am no longer a developer who is holding back the growth of free software, I have resolved to help fix bugs that I find in the free software that I use. To that end, I have become a contributor the Icecat and LibreJS projects. I have also resolved to make sure that I do not question others’ choices of which free software programs they use; I will make sure that I only question their use of non-free software and take steps to ensure that the resulting conversation is a positive learning experience for them. I have also resolved to be even more harsh in removing the use of non-free software from my use. The other step that I have resolved to take is to actively work to make as much of the code that I produce for my day job free software and work in enact a philosophical change in my team’s view of free software. Without a doubt, this last resolution will be the hardest.
I ask other developers to critically examine the software that they use and create, and resolve to work for the growth of free software instead of against it.