Craig Brozefsky on Sat, 10 Jun 2000 15:48:13 +0200 (CEST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: <nettime> * open-source architecture *


Florian Cramer <paragram@gmx.net> writes:

> Free Software (or "Open Source") is a licensing model, not a development
> model - although this distinction has been wilfully blurred by a superficial
> perception of Eric S. Raymond's essays. ("The Cathedral and the Bazaar" was
> not about proprietary vs. free software in general, but about open vs.
> closed development models in particular.)

Free Software is software that gives your freedoms such as the ones
Richard Stallman describes in "What Is Free Software"[1] It's not just
a licensing model dealing with copyright, but also has to be free from
trade restrictions, patents, and trade secret claims, as well as being
published and readily distributed.  It's nitpicking, I know, but I
think that understanding that the Freedom associated with Free
Software extends beyond copyright and license agreements is important
to the longevity of the software.

You are correct that it is not a development model, because how can
software be a development process?  It can be the product of a
development process tho, it can even be the product of more than one
software project.  This is because one of the freedoms that is a
requirement for Free Software is:

        "The freedom to improve the program, and release your
         improvements to the public, so that the whole community
         benefits. (freedom 3). Access to the source code is a
         precondition for this."

This is important because it frees a peice of Free Software from any
particular software project.  If a given software project follows a
development model you dislike, or makes decisions you dislike, you can
take the Free Software and build your own project around it.  This is
how we got FreeBSD, NetBSD and OpenBSD.  It's also how we got the
dozens of Linux distributions whose development process ranges from
strict dictatorial control to 400 developers, a consitution and
voting.

Forking, which is what some of these project splits are called,
depending on wether the person calling it "forking" believes the
reason for starting anotherproject was reasonable or not, is often
treated as a last-resort, but is considered an essential freedom of
free software.  This is one reason why licenses which require all
changes to be distributed as patches only are reviled, in addition to
the technical problems they introduce, because they make a fork nearly
impossible.

> Important Free Software projects like FreeBSD and XFree86 use a very
> closed, top-down development model, with few participants and no
> public CVS. Even "bazaar" projects like the Linux kernel rely on
> clear hierarchies, with the "benevolent dictator" Linus Torvalds on
> the very top, followed by "stewards" Alan Cox, David Miller and
> Stephen Tweedie who are in turn followed by important developers
> like Theodore T'so, Donald Becker, etc.. (The words "benevolent
> dictator" and "stewards" were not made up by me, they are actually
> used in the Linux developer community.)

One reason for these highly centralized project structures is that at
the end of the day, the goal is to have working code, and this means
that the project has to operate with all of the crippling limitations
of present day computer science.  In many ways, the flexability of the
software techniques and models used to build the Free Software
overdetermine the structure of the project that will maintain them.

Your examples are very monolithic peices of software that address
problem domain of high difficulty, and require some fairly rare
skills.  The also all happen to be written in C, a language which does
not provide a programatic abstraction for modules and the definition
of abstract interfaces, and is very susceptable to the subtle
introduction of bugs.

Only recently has XFree been able to handle modular extensions to it's
core, and by that time the project structure was well established.  It
famr sout in a limited capacity the development of support for new
video cards to third party developers and vendors of the card
themselves.

With Linux, the addition of loadable modules resulted in an explosion
of subprojects which farmed out certain critical peices of
functionality to parties outside of the original kernel project
structure, such as USB, power management, I20, and PCMCIA support.
You even have completely parallel linux ports that have no relation to
the Linus Torvalds project, such as the 286 port, and the ports to
some big IBM metal.

And lastly with Open/Net/FreeBSD, one group thought the project was
too centralized and restrictive, and the other thought the project was
not strict enough.  Largely the same code base (they regularly swap
features and code) but three completely different software projects,
and radically different development processes.

Contrast these three projects, which even by themselves exhibit quite
a range of "centralization" with a projct like Debian which has over
400 developers, a contitution, voting procedures, and volountary
committees.  Debian is dealing with a much simpler problem domain that
easily allows itself to be distributed and decentralized, the
packaging of discreet software products.

If at any time someone feels obliged to introduce a project for
maintaining or developing a peice of software that has a democratic,
diversified, non-centralized, and flat project structure, they can
take ANY of the Free Software code bases we've mentioned so far and go
right ahead.


[1] What Is Free Software - Richard M. Stallman
    http://www.gnu.org/philosophy/free-sw.html

-- 
Craig Brozefsky               <craig@red-bean.com>
Lisp Web Dev List  http://www.red-bean.com/lispweb
---  The only good lisper is a coding lisper.  ---

#  distributed via <nettime>: no commercial use without permission
#  <nettime> is a moderated mailing list for net criticism,
#  collaborative text filtering and cultural politics of the nets
#  more info: majordomo@bbs.thing.net and "info nettime-l" in the msg body
#  archive: http://www.nettime.org contact: nettime@bbs.thing.net