I give away the software I write. A lot of people think that this is insane, but I see it at the only rational approach to general software development.
Practicality
Many of my programs are designed to automate very specific tasks. Anyone with the requisite skill who saw my programs at work could write their own version to avoid paying me. Anyone without the necessary abilities would be very unlikely to need my programs in the first place.
Since my software, then, has little financial value, I am far better off to license it for the free use of others. If my programs are good, other people will use them, and will tell me about potential problems and possible improvement ideas, which makes it better for me to use for my own purposes. In this way, I
am paid.
Philosophy
RichardMStallman has written much more on this topic than I ever could. In a nutshell, I believe that users of a piece of software should have:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
See
http://www.gnu.org/philosophy/why-free.html for more information.
Humanity
I've written software to make it easier for people to send anonymous, untraceable email (
AntoNym). I live in the
UnitedStates?, and have the right to speak out against those in power if I disagree with their words and actions. However, many people live in parts of the world where saying the wrong thing about their government will get them killed. I truly hope that somewhere, sometime, an oppressed individual is able to use my software to say things that he or she otherwise would not be able to. I live in a land of freedom; I want people in far-off lands know what that feels like.
A quick note: people often criticize cryptography software: "doesn't that make it easier for terrorists to plan the next 9/11?" My answer:
- So-called "strong cryptography" is already in wide-spread use and distribution. Adding new software to the pool does not give the bad guys any new capabilities.
- Anything can be used by people you'd rather not associate with. Ford doesn't get criticized for making cars that terrorists can drive; why do programmers have to "prove" that their work is only used for good?
Gratitude
I use Free
OperatingSytems? (
GnuLinux?,
FreeBSD). I use Free programming tools (Emacs, GCC, Python, Perl). I use Free backup software (Amanda), a Free web server (Apache), a Free email server (
SendMail), Free databases (
MySQL? and
PostgreSQL?), and Free networking tools (SSH, Nagios, Cricket). To get commercial software with the same capabilities (assuming that such software existed, which is doesn't), I would have had to pay several thousands of dollars, if not tens of thousands.
I feel like I owe something to the community that developed these wonderful, unbelievably powerful systems. Letting others use
my software is the best way I can repay that debt of gratitude.
--
KirkStrauser - 08 Apr 2003