I write both commercial software and freeware. For me, the freeware I release is generally smaller software that doesn't take too much of my time. Also, quite often freeware is kind of like "gateway" software to a commercial application. I don't have any of those, but other authors do it quite often.
I'm not really much of a FOSS advocate. Though some of my own software is FOSS with a "use and abuse" license (the most liberal kind there is), I don't think that it really contributes a lot. The reason being that programming and promoting software takes a lot of time and money. By making software free, or worse FOSS, you diminish the value of that work.
You can ask a lot of software authors, and they'll all tell you that the people that expect things for free are very often the most difficult to deal with and most unreasonable. There comes a point when you just can't invest much more of your time in a project, and when you get people that have been free loading start to whine about it, it really isn't much incentive to continue.
I don't know if anyone here is aware of NDOC
. It is a FOSS application for creating API documentation. The author just didn't have the time to continue with it, and a lot of his users started to whine and complain about not getting more releases & updates. That's a pretty bad way to treat someone who is giving you something for free. When he stated that he would no longer be continuing development of NDOC, he was again under attack for it. Like that's going to motivate him to continue.
You would have to be completely crazy to release zip or ftp software, as those markets are so saturated that you'll never gain any real traction. 7zip has gained popularity not because it's a good zip program (it's a bit unfriendly to use) but because it has an excellent compression algorithm that is highly efficient. It is also free without the hassles of the GPL license. But that's not the same market as "zip software". That's the compression market, and there's always room there for better performance, especially in the enterprise where technologies are more strictly managed.
But a lot of that kind of software comes out of individuals that are personally motivated in a specific area. Developing things like better compression algorithms is very difficult and requires a lot of expertise that most programmers simply do not have. (Compression is all about math.)
jgpaiva - regarding commercial software being impersonal, I think you're thinking more of software from larger companies. I'd find it hard to say that Apache is personal. There are a lot of micro ISVs that sell commercial software, and many of them are very personable. Much of the software that I use is commercial and I've dealt with the developers of it and they're more than willing to email with me. This is a great advantage for a micro ISV - we small developers can respond quicker to people and much more personally. We don't need to check with anyone else on anything because we are in control. Reporting to the boss is just reporting to yourself (or the wife as the case may be
). I provide much better support & personal service to my users & customers. Why? Because that's the way I'd like to be treated, and because I can. Larger companies can't respond as quickly, and that works to my benefit.
Mouser wrote a good list of why people release free software though. I'd add in that sometimes (as a developer) I don't really feel that the program is worth all that much, so I make it free. There are commercial applications that do less than what some of my free software does. Why is that released as commercial software? Well, somebody is trying to make a buck. Should I blame them for it? Certainly not. Everyone needs to put food on the table. The software still has value, but for me, it just doesn't have that much value whereas for someone else, it has more value.
Anyways, that's all just my $0.02.