Re: Free Lunches (was: OUTREACH 101)

Wayne Hayes (wayne@cs.toronto.edu)
Mon, 22 Dec 1997 10:57:35 -0500


"Peter C. McCluskey" <pcm@rahul.net> writes:
> wayne@cs.toronto.edu (Wayne Hayes) writes:
>>The interesting question is "Why are Linux and GNU so successful, given
>>that they are written by people who aren't being paid?" The answer, at
>>least in part (and in my opinion almost entirely), is because the
>>people who write the software do it on their own time, because they
>>*enjoy* writing good software. An important practical factor in this
>>equation is that there are no deadline pressures to "get a product
>>out". So things get done slowly, but they get done *right*, and they
>>get it done right *the first time*, usually.

>Anyone who thinks freeware gets done slower should compare the
>speed of bug fixes.

Bug fixes certainly come out faster with Linux than with commercial
software. I'm talking about development.

> Eric Raymond has a much better explanation for the success of Linux
>style software in his "The Cathedral and the Bazaar" paper at:
>http://www.ccil.org/~esr/writings/cathedral-paper.html
> His main point is that debugging can be effectively parallelized with
>much greater brainpower when the source is freely shared.

Certainly this is important, but it's not enough. You can throw as
many people as you want at a project, but if their *hearts* are not in
it, the product will not be as good as software written by people with
their heart in it. Furthermore, the people that tend to work on
freeware like Linux tend to be "Guru" types --- the kind of people who
are better programmers than average. Why are they better? Because
they're the type of people who spend their spare time programming,
because they enjoy it. Their driving force is coming from an inner
need to produce something beautiful (yes, computer programs can be
beautiful). In a way, the Linux kernel is a work of art, produced by
some of the best programming artists that Earth has to offer, all in
their spare time, all directly out of their hearts. When a bug
appears, it gets fixed quickly precisely *because* the artists suddenly
feel a pang of ugliness, and are compelled to fix it in order to
restore beauty. When you get hundreds of artists together doing this
(here's where Eric's idea of parallelism comes in), you can get
pretty spectacular results.

Compare this to a software company with hundreds of programmers. There
is *always* "dead wood" in a commercial product of this size. That is,
people who are there solely because they need the money, not because
they *want* to be there. These people can be non-productive, or worse,
can hinder the project as they produce code that is incomplete, buggy,
or interacts badly with other sections of the code. They simply are
not capable of going at it with their entire heart and soul like
freeware programmers do. The result is shoddy software.

Another point: imagine the things of beauty you would produce if you
only worked on them when you felt like it. If you get bored, you stop
and do something else. You *only* work on the project when you feel
like it; when you have a positive mind-set about doing it. That's what
happens with Linux. People working on something only when they want
to, as compared to people trudging into work every Monday morning and
starting to work when they really should still be home in bed.

I know it sounds wishy-washy, but "having your heart in it" is
something that is too often neglected today. Imagine, for example,
what this e-mail list would be like if instead of being *us*, it was a
bunch of people who were *paid* to argue the points we debate here, who
stopped arguing at lunch time and at 5pm, went home and watched TV all
night without ever thinking about the issues again until 9am the next
morning. Do you think the debate would be as interesting?