But why would you, the developer, choose to give away your product ?
It could be that you have an itch that needs to be scratched. You've written this great software and you want the world to see it.
Maybe it's a loss leader. You give away the software, but your name gets well known and it looks great on your resume.
Maybe you have a more advanced copy of the software that you plan to sell on the back of your free version, or you want to sell an update service, or consultancy and training.
Maybe you want to make the product name famous - then sell the rights to the name
Maybe you want to sell certifications to hardware vendors
Maybe you want to make money on providing customised modifications. If someone likes the software but wants a change, who else are they likely to come to first to get some changes made? – Of course they will come to the original author because the person that originally wrote the software will know it the best.
You also have a choice as to which open source licence you use – you can choose from one of a dozen different ones – or you can make up your own.
You can also dual licence your software - provide it under an open source licence, and at the same time offer it for sale.
People say that open source software has no warranty. But they are forgetting that they don't get any warranty from commercial software vendors either. All commercial software is sold 'as is' on the (correct) assumption that there are bugs in the software.
The only difference between open source software and closed source software is that with the former you can fix the problems and with the latter you can't.
This is not just an idle comment. As a commercial software developer for many years I have seen it from both sides. Now I work as a consultant for many companies that use closed source software and cannot get changes made to their software. Either the original vendor has lost interest, or gone out of business; or intends to charge an unreasonably high fee for the changes (and may not do them correctly).
For larger clients, I like to recommend open source software where possible so that they can get changes done if they need to without being locked in. The advantages are obvious, an example strategy is to influence the current developers by making sensible suggestions to the newsgroups, to finance their own programming changes and feed them back in to the main development tree; or even to break away and make their own version of the software with their own customised changes.
Another major problem with commercial software is the costs of complying with the licences. Time and effort is wasted checking to make sure that the number of licences of shrink-wrapped software is not exceeded.
These days I use and recommend Open Office. Not only is it free and works well, but in addition the concern about the number of licences is completely eradicated. You can run it under a selection of proprietary or non-proprietary operating systems as well.
The reason that closed source vendors are waging a war against open source is obvious. They are running scared because they can see that many open source products are just as good as, or are actually much better than their closed source counterparts. The support from newsgroups is fantastic. Changes get implemented faster and software is written to use non-proprietary formats.
As an example of the last point, I am writing this document using Open Office. I can choose to save the document in a number of different formats, these include proprietary formats such as .doc or as open formats such as XML.
The open source movement has had and will continue to have a salutary influence on software development in the commercial world. There's still a market for commercial software, for those who want to 'buy a car with the hood welded shut', but there's an increasing appreciation of the benefits of open source software both for suppliers and consumers.