I've just been reading several documents at gnu.org explaining the benefits of free software over proprietary software (indexed here http://www.gnu.org/philosophy/philosophy.html)
After reading these articles/essays I very much feel that following the guidelines of the GNU Public License is the single best way to develop software in most if not all cases and holds benefits both for developers, end users and society as a whole.
However, I still feel that if I were asked to justify this view to someone I would have trouble doing so, because my understanding of the underlying concepts is still a little sketchy. In particular, I can quite readily accept that writing software under the GPL is the best way and I'm the kind of person that would still program even if I was not being paid to do it. However, the harsh reality is that programmers need money to put bread on the table and apparently some geeks even have families to support! Just say someone were to program full time and released all of their code under the GPL, where does their bread actually come from? Short of selling their body on the streets (which may be frowned upon by aforementioned family) or starting up a farm and becoming self sufficient, where does the doe come in?
I believe that job satisfaction comes over money every time, but there are still sources of money in free (as in speech not beer) software and the documents make it quite clear that you can quite legitimately sell such software for whatever price the market will pay, providing you follow the guidelines so that the freedom of the software is maintained. If a baker buys his own flour, he owns the bread he bakes and can sell it. If I write software but I don't own it, I can still sell it, but people can get it for free from elsewhere and can get it from a friend, which as an alternative to paying 9.9 times out of 10 they will. At the moment this may not be such a problem as people may prefer to buy the software in a package with an instruction manual and bundled support for the program.
However, I would argue that the ideal program would be intuitive to the point where it required no documentation or training and support is mainly for when things go wrong, which an ideal program wouldn't. In instances where a form of support or source of information IS required, which will always happen, the online community can often offer support that is equal to that of paid support for free, and this is actively encouraged within online forums and instant messaging. With the spread of broadband internet connections swapping information or programs between people is becoming even easier and cheaper than copying a CD to the point where the cost per byte is negligible, which is the way it should be.
The only source of income that therefore remains is writing bespoke solutions for a particular customer where that customer would pay you to port your program to fit their own business practises rather than work on the features you would normally put as a high priority. However, if this is also released under the GPL will the number of cases not be very small and no basis for a decent sized income?
I don't like the fact that my only concerns stem from the need for cash, but it is, unfortunately, a necessity. I'm posting this rather long message here because I know there are veterans on the subject lurking in the corner (or not) who may be able to enlighten me. I believe the answer to my questions lie on well trodden ground and hopefully those answers will help me in my active support for free software. If there is an easy answer, then forgive my ignorance but I make no apologies for asking silly questions, someone has to ask them :)
Thanks for your time, Ben "tola" Francis
--- there is no spoon... damn, now I have to eat my yoghurt with a fork.