Linus Torvalds |
|
|
|
|
|
|
figure 8 |
So what I
think is the most important part, at least for me, aside from the
fact that it's a lot more fun to develop this way, is that the open
approach is so powerful because we can leverage all the parts of
evolution, not just the mutation or incremental change, but also
mutations in parallel, thanks to the open exchange of the genes
of software, the source code.
Also, in the open source community there are often, but not always,
requirements on being able to recombine. The General Public License,
authored by Richard Stallman, which is what Linux uses as a license,
for example, has the explicit requirement that you are allowed to
recombine your source code with other people's source code. You
cannot take that right away, and that's a very important thing.
It doesn't always have to be in the license itself. There are open
source products that try to encourage the combination not through
licenses but, for example, through social customs. This is the one
that science uses. The thing that makes scientists tell other scientists
how to reproduce and how to improve on their work is the social
customs in the science world. There are no licensees in science
but there are very strong social customs. Over hundreds of years
we have evolved a system that encourages the recombination you find
in science.
I already mentioned the parallelism by making source code free.
Another thing that a lot of open source advocates, like Richard
Stallman, talk about is trying to avoid things like patents, which
limit people who can do certain things, and by limiting it to one
company or a few companies, it also limits the parallelism of having
people everywhere work on a project. An open source encourages competition.
It's very strange to me how, especially in the United States, which
is supposed to be the land that glorifies competition, at the same
time people tend to glorify a lot of anti-competitive measures,
such as patents. Intellectual property rights are all inherently
anti-competitive, and that has always been their whole point. Open
Source tries to make competition a good thing. For example, in my
personal project, Linux, we almost always have not just my source
tree but there at least three or four other source trees maintained
by different Linux distributors who take other changes than just
the ones I create, and actually maintain competition even within
the one project. This is not even to mention the whole ecosystem
where they take different parts of other Open Source programs and
try to compete within the whole ecosystem, too.
Figure 8
I will talk about some problems, because there is no question that
the open source approach also has some downsides to it, and neglecting
those downsides would not be entirely fair. One effect of trying
to make things more parallel is that it usually is duplicating a
lot of effort. You have parallel projects that expend a lot of energy.
There is wasted effort from people working on the same thing. Especially
if it's something really interesting, you will find that a lot of
different groups want to work in the same area. This is required
in order to get that effect of competition. But at the same time,
it means that this is very hard to do within a company, where trying
to maintain multiple tracks and trying to create an Open Source
model within a company might not be economically viable. And I think
it actually is economically viable only if you allow it to go outside
a company. So you can't just cherry-pick the good sides of Open
Source and try to apply it within your company, because you will
inevitably lose the economic possibility of having multiple tracks.
If you have a wide base, you can spread the cost out, which is how,
for example, biology does it, where it's very expensive on a global
scale to have millions and billions and the individuals reproducing,
but on an individual scale it's actually a lot of fun. |
|
|