Im a firm believer in software being free, the problem is the consumer's attitudes. We all want stuff for free (which software should be) and so people who develop it don't have time to devote to improving their software or putting out new stuff. When I develop programs to distribute, I would personally put them up for download then have a donate button the idea being that if you can afford too you donate some money to me so that I can devote more time to putting out software for the public to use. Even if your broke, just a dollar would help as they add up as more people download the program.
I also believe this attitude could be adopted for music, the artists would produce albums and put them up for download then ask people to donate if they enjoy the album/song so that the artist can afford to redirect all of their talents towards producing music. They should still make CD's though, and sell the CD's, because some people prefer having the CD with the album art and all the little goodies in there. Plus they know they are supporting the artist.
I feel as though a large reason why this is such a problem to implement is because:
A. Greedy people who just want money and don't particularly care about their field. They only picked it for the $$
B. People who love what they do want to do it full time, but they can't afford to at this point in time unless they sell it
C. Corporations-they want a slice of everything and if they can't make money off of it they'll pull some political weight to pass a law so that they can leech money from the visionaries
D. The general public's attitude, yes I am talking about all of you. How many of you would HONESTLY even consider donating to the artist/programmer if they gave software out for free?
As for point D, it's something I'm working on myself. I'm pretty broke constantly, anytime I can sock away more than a thousand dollars something always seems to come up like my car breaking down or my family needing money, and so I don't always think about hitting that donate button when someone does have one. However, I am aware of this and working on it. Even if it's just five dollars, it does help the developer and I am working on keeping that in mind anytime I see a donate button on a site where I download free software.