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