Date: Thu, 22 Feb 2001 06:06:35 +0000 (GMT) From: Terry Lambert <tlambert@primenet.com> To: jcm@FreeBSD-uk.eu.org (j mckitrick) Cc: freebsd-chat@FreeBSD.ORG Subject: Re: Netscape story Message-ID: <200102220606.XAA07799@usr05.primenet.com> In-Reply-To: <20010221212930.A11954@dogma.freebsd-uk.eu.org> from "j mckitrick" at Feb 21, 2001 09:29:31 PM
next in thread | previous in thread | raw e-mail | index | archive | help
> I hate to dredge this up, but is there anywhere I can find a succinct > version of what killed the open source Netscape development model? I know > they went OS to stay alive after losing to IE, but all I ever hear people > say is 'not like the Mozilla development model' and 'after Netscape became > a mess' and remarks like this. Mozilla is still around, so it wasn't killed. > What went wrong? It wasn't working code. People complain and blame a lot of things on the model, but it's not what's at fault. The number one issue that resulted in the projects lack of momentum, I think, is that Netscape released partial code, instead of releasing something that worked on at least one platform after you typed "make"; platform rivalry would have taken care of the porting, if it could have been demonstrated on a single platform common to a large enough group of software developers. I'll give a success example. From my own experience, the University of Michigan LDAP code languished for a long time. It would not build and run on Linux, BSD, or Windows, so there was no large developer base. Most of the commercial LDAP servers, including Netscape's, were derived from this code, until relatively recently (IBM and Novell have their own implementations on top of their own non-LDAP directory servers, now). Critical Angle collected many of the patches posted to Usenet or put up for FTP over the years, but kept them seperate. I don't think that this was an intentional attempt to favor their own product, it was just how they were organized. As part of some research I was tasked with at Whistle, I took the Critical Angle patches, and all the other patches I could find, and manually applied them one by one and hand resolved all conflicts between them, which happened frequently when they touched the same section of code. I then went through and added some of my own patches, which fixed aggregious portability errors in the code, and made in run with both standard and Draft 4 compliant pthreads. The process was similar to the patchkit process I created for 386BSD, without the attempt to keep the patches seperate, or build shell scripts to create a poor man's source control system to deal with them, and knowing that someone else had already done the job of making it work on at least a large subset of PCs. The original UMICH code pretty much had a lot of unacceptable bugs, even on its reference platform, which required patches to keep it from spinning and eating all the CPU time. Some patches to FreeBSD's pthreads to bring it into full compliance with Draft 4 came out of all this, most of them partly or wholly written by Jeremy Allison. When all was done, I had something that would run on many more platforms (SGI and OSF were Draft 4 pthreads implementations, for example, and any BSD derived system would have failed over the use of the incorrect maximum number of descriptors argument to select). It totalled ~120k of patches. Kurt Zelinga later started the OpenLDAP project; if you look at their CVS tree, which is online at their site, you'll see that almost the very first thing they did after importing the UMICH code was to import "the FreeBSD LDAP patches". I was encouraging of the project, but I didn't want to get involved at a "project founder" level. I thought that LDAPv3 was going to be the nail in the coffin, and Whistle wasn't going to pay me to work on the code. Without a commercially funded contributor, I thought the complexity of the v3 protocol was going to drive implementation out of the realm of possibility for an Open Source project. Happily, Kurt has found a model which works; while it doesn't get a huge number of people hacking on the code, it is capable of much more complex tasks than the FreeBSD or Linux model. I like it when I'm proven wrong for having too low a level of expectations; it happens rarely. I posit that the OpenLDAP project would not have happened without working code, just as a bootable BSD based OS would not have happened without Bill Jolitz's release of 386BSD. Here's the dirty secret or bottom line: Most Open Source projects are run by tinkers. It's an important point. Most people involved in these projects would, had computers never been invented, be working on souping up their cars (or boats), drag racing the things they've built, and in general, tinkering. Some of these tinkers turn out to be race car mechanics; most of them don't. Some projects build the best race cars, with a small team of race car mechanics. Most end up with a lot of shade tree mechanics, and will, like as not, chase off race car mechanics as threatening to turn their hobby into work. So to start an Open Source project requires some thought, and it requires a license that's not aggregious, and is at least commercial utilization (not use) neutral, and it requires a central point for the community to communicate and grow up around (technically: a Schelling point). It requires that it have a structure that can handle the level of complexity of the problem it's attempting to address, or it requires the ability to get a commercial organization to pay a trained mechanic to do something which is beyond the ability of even a gifted tinker. You can even design the society that you'll end up with, once the strong initial contributors are no longer there, so that the project won't crap out when they're gone. Frankly, these are easy. The one thing it absolutely cannot do without, though, is working code with which to tinker. Mozilla is lucky in one sense that Netscape was willing to keep it on life support by commiting developement resources to it until the donor organs finally showed up. It's unlucky in that many, many people got to see what was, to all appearances, a corpse, for a very long time. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102220606.XAA07799>