I want here to talk
about the open source movement and some of the ideas behind it. I
guess I should first define what I mean by 'open source'.
In 1998 Eric S. Raymond wrote a famous essay The Cathedral and the Bazaar in which he argued that all software should be open source. The phrase 'took on' and came to mean something different from what it originally meant. 'Open source' came to mean not only were the sources readable, but also that users had the right to do with the code pretty much what they wanted. 'Open source' then became associated with licenses like BSD and MIT in which the author not only made the software readable, but also effectively relinquished any creative or financial control over his creation. These licenses were not new; what was new was the redefinition of 'open source'. Later the Open Source Initiative formed to propagandise this ideal of 'sharing'.
I see this shift in the meaning of 'open source' as a retrograde step, because it made a mudball of several distinct ideas; making software readable, charging for the commercial use of code, and exerting creative control over one's work. These are quite distinct choices and OSI philosophy masked many real choices by redefining 'open source'.
Despite a failed attempt to trademark the phrase 'open source', so successful has been the OSI marketing that many programmers never pause to consider that these topics should or even can be discussed separately on their own terms.
In what follows I will use the word FOSS meaning ‘free open source software’ to conform to what the OSI call 'open source', reserving the term 'open source' or 'readable source' in it's original meaning.
Free As in Free Speech becomes Free As in Free Beer
I've talked about FOSS or free open source of which BSD/MIT licensed software is an example. There is also the GPL licensed software too, which allows distribution of source provided that the sources are readable and users are given the freedom to change the code at will. However any software incorporating GPLed code must itself be GPLed (the infamous 'viral' condition). If I write 1000 lines of code and borrow 100 lines of GPL code, my entire program has to be GPLed. The author of the GPL and its staunch defender is Richard Stallman, head of the Free Software Foundation.
Stallman calls GPLed code 'free' and explains that his freedoms are there to facilitate the exchange of source, and that the freedom he talks about is more akin to 'free speech' than 'free beer'.
Protagonists of the BSD/MIT have rightly pointed out that Stallman's 'freedoms' actually incorporate an important restriction on what one can do with GPLed code because of the viral condition and question whether such programs can be 'free' in the way that Stallman insists. If one is not free to do as one likes with a GPL program, can it be free in the way Stallman insists? Probably not.
Stallman's 'free as in speech' vs 'free as in beer' line really does not scan. 'Free as in speech' does not mean 'free as in beer', but in fact if you look for GPL software it is almost always 'free as in beer'. If you try to sell GPL software, it is possible for your punter to buy it, write some trivial change and resell it under GPL for less, undercutting you. By parity of reasoning this can be repeated down the chain until the price tends to zero. So designers using the GPL nearly always make their work free. The same argument applies to FOSS code; FOSS code is almost always free of charge.
Why is Free Software so Bad in Quality?
Most free software is poor or unusable. This is heavily disguised because protagonists like to use the isolated points fallacy to sell the idea FOSS is great.
The isolated points fallacy consists in taking the high scoring points on the graph and ignoring all the other points. Hence FOSS champions wheel out the standard examples of success - Star Office, Emacs, Red Hat Linux, and SBCL - ignoring the vast sea of floating half submerged buggy and abandoned projects (over 120,000) that litter GitHub. It is the sort of technique Mugabe would have used for TV. If you're accused of starving the country, wheel out a handful of well nourished kids for people to see. 'Look, our country is fine; see how healthy these kids are'. Out in the slums the less fortunate die of cholera.
In practice the great debate between BSD/MIT, GPL and the closed source people there is an important truth about software development which gets obscured. It's absolutely basic. Here it is.
Good software arises when one or more very good programmers work closely full time together over a period of time developing, maintaining and improving it.
That's it. Very simple. Except its not, because if you're lucky enough to attract such a team you need to keep them together. And for that you need capital and that is exactly where FOSS falls down. This is the main reason why so much FOSS is of poor quality.1
FOSS was Built Out of
Corporation and Tax Money
The Red Hat Story is
For many years, hand-holding for Red Hat Linux platforms was an absolute necessity since the design and implementation of this platform was so poor that without hand-holding or a serious investment of time, the average user would be lost. Torvalds himself criticised an early distribution of Red Hat as totally unusable and unfit for distribution. But in the heady days of the dotcom boom it was easy for Red Hat to capitalise its ideas and eventually they worked their way from total mediocrity to a strong market position.
But even so you will notice that Red Hat is mainly popular with server administrators and geeks. Its penetration into the desktop market remains very small; generally because Linux designers have still not mastered the idea that people would prefer to use their computers to do stuff that they find interesting rather than recompiling their OS. It is precisely because Linux is complex, demanding and sometimes quirky that there exists a market for administering it at the server end. You can sell your services to people if what you produce is sufficiently complex or difficult that people cannot use it easily. They'll pay you to save the hassle. And if you look at the areas in which FOSS has been commercially successful, Apache and other initiatives, you will find that they nearly all have this pattern.
But if you produce something that is highly useful, easy to use, intuitive, reliable and well documented, then giving it away as FOSS is commercial suicide because there is little or no market value for your services. The market value is in the product and not in your services. And here is the irony, because software that is useful, easy to use, intuitive, reliable and well documented is precisely the paradigm of what software should be.2
In fact FOSS is often a recipe for half-baked freebies that displace good software because they are free, but which then go on to soak up everybody’s time by being full of bugs that require ‘support’ (i.e. your time or money) to heal. Good software is properly documented, does not break and does not require hand-holding to use it. Consequently the FOSS economic model does not favour good well-documented software as popularly claimed. What it does favour is buggy, constantly evolving software that needs support and gets dropped as people lose interest.4
Doesn't crowd funding solve the economic problems of open source?
Not really; certainly not for most projects. If you look at the most funded projects on Kickstarter, they fall into the category of gadgets and games. There are a few software projects that have attracted significant funding (like Light Table) but not that many. Certainly the average successful Kickstarter funding of about $5,000 will not carry any business much beyond the first quarter of its first year.
The austere facts of open source economics poke through like the bones of an undernourished cadaver when you look at some famous open source projects. In January 2014, OpenBSD entered financial crisis when it could not pay its electricity bill.5 After an extraordinary appeal it was rescued by a bailout of $100,000. But the total annual revenue of this open source leader is actually only that of a single associate professor; not exactly big potatoes.
A look at Linux Mint, a well-known Linux distro, shows that the total income from donations is in the region of $50,000-60,000. In other words, the income by donation of two top rated open source companies pushing software used by many thousands is only scratching the income of a middle income American.
Recently open source funders have recognised that open source companies not only need kickstarts, they also need a continuos income stream to sustain them beyond the start phase. BountySource was introduced to carry this through. The idea was that projects could be posed and bounties placed on them for people to complete them. Great idea. But when you look at the income stream from bounties, the top scoring ace programmer for the entire site (who had to beat hundreds of programmers to make the top spot) pulled down about $50,000 for the year. That's actually below the going rate for a full time programmer in the USA (but maybe he's in Bombay and living it up?). Second place went to a guy with $34,000 and third $8,000. The rest probably got holiday money.
Crowd funding is not an adequate long-term income model. The 451 group has likewise concluded that open source economics is not a business model.
Much has been made of Android, the hand-held OS from Google. Android is Linux on a weight-loss program, sans scruffy beard and wearing cool shades. But Android has very little to do with open source methodology or economics. To quote what we said earlier.
Star Office was the product of StarDivision and Sun Microsystems. It was not put together by a hacker living in his mom’s spare bedroom, but by a team of professionally qualified, highly paid and very able software engineers who were working for a company that made and sold products according to a classic capitalist model.
This fits Android to a T. Android is a product of a lot of professional engineers working at Google who borrow selectively from OS code and write much of their own stuff. Android is financed by Google's enormous advertising revenue and the purpose is to penetrate the hand-held market and make money. Nothing wrong with that, but nothing particularly relevant to going open source unless you're the size of Google.3
Why Do Corporations Support Open Source?
I heard people defend open source by pointing out that companies like IBM etc. use it. I find this droll; that a movement that was so consciously set up in defiance of the evil M$ empire should seek its justification in the support of corporations like IBM. Of course the corporations support it. It's good for them! But only a fool thinks that what is good for IBM is automatically good for the little guy.
Prior to FOSS, companies like IBM had to spend millions of dollars on R&D to keep up. To have a market model where innovators who cannot capitalise their ideas, freely share their best ideas and code with the corporations who can take advantage of them is great for IBM. Its like having a self-basting turkey that moults spontaneously and steps into the oven.
The modern trend in FOSS is away from the GPL and towards MIT/BSD. That's no surprise, because GPL is awkward for corporations. Red Hat endorses the MIT/BSD model. And as corporations encourage the development of these new liberal licenses, we find that Stallman is being exorcised as an aging hippy, not 'with it', an embarrassment, uncouth, and so on. In plain terms, Stallman has outlived his usefulness as a stooge. There are better and brighter ways to encourage FOSS than the aging GPL. Goodbye Mr Stallman.
Free Open Source is not often Innovative
An awful lot of FOSS is poorly written reverse-engineered copies of existing commercial software. Innovation is hard; it requires time and brains. Reverse engineering is a powerful disincentive to innovation since anybody who does spend R&D capital in innovation, can have their ideas reverse engineered.
Copying stuff that exists is easier and cheaper. And that means that there is less commercial incentive to develop new and better things as long as there is money to be made from patching and teaching old technology. In a society where fuel-inefficient old Fords were free, nearly everybody would drive one and the auto industry would wither. Mechanics would be like Cubans, scratching a living fixing old Fords. And that pretty much describes the way that many FOSSers work. Scratching around on the antique Linux operating system and writing kludges.
It depresses me to see that young geeks think that Linux is cool whereas its design is old enough to be getting a bald patch and a mortgage if it were human. They should be innovating. Imagine a young aerodynamics engineer graduating from college and contemplating a life servicing DC 10s! Nobody with any innovation in them would want to do it. Yet somehow this is projected as a glamorous career move in computing. And if they do innovate and their innovation is good then its just as likely to be swept away from them by the corporations who have the capital to exploit it. Thanks for the idea and there's a small bag of peanuts by the exit.
In fact most smart people would steer away from programming as a career for just these reasons. I don't think the smartest of our young Americans are in the game any more; its mainly educated immigrants escaping from bad conditions who'll do most anything for a visa. The smart move for young Americans is MBA and Law.
Copyright and Closed Source is There to Protect Inventors
One of the weirder things about the FOSS movement is the dislike of copyright and closed source. These are Bad Things and only people like M$ promote them is the official line. Stallman goes as far as denying creative rights altogether. But copyright law exists to protect innovators from companies like M$ who would otherwise exploit their work and give nothing to the innovator. It is the function of law, properly conceived, to act as the great leveller, allowing the weak to stand next the strong under the protection of law. Remove the protection of law and the Golden Rule applies; he who has the most gold makes the rules.
If FOSS is Often Poor, Does it Matter?
More honest and discerning members of the FOSS community will admit that an awful lot of FOSS is really quite poor. However they insist that this really does not matter since some significant fraction (and they admit this may actually less than 5%) is really quite good and that's the stuff we should use. Hence the argument is 'Yes; a lot of FOSS is awful but that's not important because you don't have to use it.'
However the problem is that the FOSS user may not stumble on this magical fraction and the invisible iceberg of buggy, ill-conceived FOSS lies submerged ready to rip out the bottom of your leisure time and send that lazy weekend to the bottom. In fact, FOSS uses massive amounts of user time trawling through defunct and buggy applications and posting to forums in search of the magic configuration. FOSS users, being zealots, tend to be blind to this. They treat the sunk costs of their learning through hard experience as zero, which is wrong. The cost of having to deal with software which should never have been issued is significant - even if you finally junk it. Bad software will injure your leisure time and your pocket.
The World Does Not Need
Free Open Source
With respect to Lisp, I think that the commercial environments that are now on offer would be considerably cheaper, since Franz and LispWorks would have made important economies of scale in being able to sell their products in terms of the hundreds of thousands instead of the hundreds. And for anybody who has used them, these products are better than the FOSS equivalent. So the chances are if there was no FOSS, you would have learnt Blub anyhow and be using a better product, even if you had to pay a modest price for it.
The world does need idealism and young people; but why waste your talents on FOSS? Go out and save the Siberian tiger; why not? Its absolutely beautiful and worth fighting for. What the world does not need is another buggy open source copy of Windows Media Player.
We Do Not Need the FSF or OS Movements Either
Am I saying in all this that I am against FOSS? No, not as such. If a person creates something and he wants to share it, then fine, good for him. For me to condemn people who want to share would be wrong. It's their work, let them do as they wish. What I am against is bullying people to share or suggesting that not sharing according to the lights of the GPL is wrong.
Once we accept this then much of the point of the FSF disappears. There is no point in having an organisation that preaches sharing to people. If I want a sermon on the value of sharing I'll go to church.
Why Do People Endorse FOSS?
The arguments that have been advanced for FOSS as a generic economic model for underwriting software are not good. Why then do people endorse FOSS? I believe the answer is largely greed. It's nice to have things for free and it's not nice to be reminded of the consequences of doing so. When a belief system is designed to pad out people's comfort zone it assumes the trappings of a religion. And this is why the debates on FOSS often turn so nasty; because to criticise the FOSS model is to take away people's intellectual candy. And the result is a tantrum.
We all like a free lunch and nobody likes to be reminded of their weaknesses. Or to put it in another way, people like to be told their weaknesses are not weaknesses at all, but God-sanctioned characteristics. In the C19, the white man hungered for the Indian lands and missionaries and public speakers justified seizure in the name of civilisation. In the C21 we are hunger for software, but only in Stallman and others will we find someone who will endorse our baser motives. He tells us it is good to hunger and take, and the only reason for abstaining is fear of being caught. So he says.
In other words theft is OK if you don't get caught. This is, of course, nonsense. Theft is theft, but a bad argument is enough for some people when they are ready to listen to what suits them. Since consumers radically outnumber developers and innovators, the combined decibel output of the FOSS supporters tends to drown out contrary opinion.
Summing It All up
So lets bring all of this together in a way that makes these points clear. Note I don't believe that those religiously inclined to FOSS will pay any attention to what is said here, but for others of open mind it seems worthwhile to bullet point these ideas.
1. Good software arises when one or more very good programmers work closely full time together over a period of time developing, maintaining and improving it.
2. If you give your software away under GPL (free as in free speech) its very difficult to charge for it and so it ends up being free as in free beer. Ditto for FOSS.
3. Hence if you want to maintain yourself and/or your team, you need a viable economic model and FOSS/GPL does not always supply it. Their standard models are support and advertising.
4. Since the economic model for FOSS is not generically viable it often relies on corporate and taxpayer money to sustain itself.
5. The lousy quality of FOSS is disguised by pointing to the few success stories. So much of it is (badly) copying commercial ideas.
6. Corporations like FOSS because it allows them to exploit ideas without recompense.
7. We do not need the Open Source Movement or the FSF.
8. Despite every argument that can be mustered, FOSS people will continue to ignore them.