First, it is important to remember that the Free in FreeSoftware
stands for freedom, not no money.
Free software has proven itself on the server side. There is a proven business model, and people are making a lot of money here.
1) The thing about the server side is that while there are some common, reused components (database servers, web servers, etc), most companies still need a lot of custom programming for their servers, and no amount of free software is going to make this need go away. This is the business model that the majority of today's programmers would fit into. Instead of working with proprietary tools, they would work with free tools instead.
2) Further, business are always going to need their reusable objects upgraded. Do we really all want to stick to database servers that can't replicate? No, so replication would need to be added. Now, if there were no company selling databases, only free databases, some company would have to bite the bullet and write the feature themselves. Then, they could either keep it a secret (which will make it hard to use other people's changes in their own copy of the database server), or they can release. When they see the difficulties of a split development tree, eventually the businesses will stop splitting the trees. Apache fits in this business model.
3) That said, companies don't like writing these things themselves. There is still room for free software here though. Look at Cygnus. Their main product is the free gcc compiler used by programmers every where. They do sell some enhanced products for developers that aren't open source, but to my understanding, most of Cygnus' money comes from making new versions of gcc for special circumstances. For instance, Cygnus supplied the compilers for both the original playstation and the playstation 2.
Cygnus is nowadays owned by RedHatTheCompany.
On the client side, things become a lot trickier.
There is a client side equivalent to point 1 above (just like we need custom server side software in business, we need custom client side software in business). But other than that, the people who do free software haven't had much interest in client development until recently. It is too soon to say exactly how this will work from a business perspective, since virtually all the free client software out there was written by people who love programming, not people working for money.
You could see the economics coming as a consequence of the EightyTwentyRule. The open-source software is the easy eighty percent; the custom progamming service is the hard twenty percent.
Money can also be made just installing free software and configuring it (ie FreeRadius?
, Raccoon, Samba, Apache) without you doing a lot of programming. The commercial versions of similar software are expensive, and people who can do the same kind of networking and integration using OpenSource
are well liked by enterprises. Takes a lot of experience to do well but customers will pay a bit more for the knowledge because it is offset by savings on the software.
Oh yippee. The kind of work I hate (installing and configuring software) will pay while the kind of work I love (writing software) won't.
The above isn't really free software economics, or at best is only a miniscule part of it. Economics is the study of allocation and distribution of resources. Free software economics would be about how free software is financed, who finances it, how it gets financed, the way it affects other economical activity, and so on and so forth.
Now, if you look at how free software is actually financed, you'll find that software manufacturing companies like Red Hat are only a tiny miniscule portion of financing. The vastly greater portion is software user companies financing free software out of their own pocket because, well, they need that software. And the other great portion of free software financing is user programmers doing so out of their own pocket either because they need the software or because they get paid in attention (AttentionEconomy
) or for purely political reasons.
If you consider programming as an inherently innovative activity, and to some small degree it is, then EricVonHippel
shows that most programming is and should be done by user programmers (in house), not manufacturers (shops). And if you want to turn to the broader politico-economic questions about software, then you must read NikolaiBezroukov