Subject: Re: Control of collaborative development projects?
From: kragen@pobox.com (Kragen)
Date: Thu, 11 Dec 1997 23:01:25 -0500 (EST)

On Thu, 11 Dec 1997, L. Peter Deutsch wrote:
> > stub code that fits the API.  I'll bet that the GIMP works that way.
> > A lot of the GIMP are its effects filters, and file-format loaders.
> > The code to glue them together probably isn't too awfully large.
> 
> I think that could be a great way to proceed, if the APIs are very, very
> thoughtfully designed from the beginning so they won't change much or often
> after people have started writing code that conforms to them.

I am not convinced that this is possible.  Software I have seen that was
completely designed and then completely implemented tends to be designed
badly; software I have seen whose design evolved along with the code is
often superb.  Most software people write for the use of a class of people
including themselves is written this way, I think.

In the case of the GIMP, the API changed completely from version 0.54 to
version 0.99, due to the experience gained up to version 0.54.  This meant
that essentially the entire program -- plug-ins and all -- had to be
massively overhauled.  There are some plugins for 0.54 that never got
ported to 0.99.

This isn't to say that the GIMP developers didn't think out their
interfaces, but rather that thought cannot substitute for experience.

Kragen