[lug] Software Projects as well....

Ian S. Nelson nelson_ at attglobal.net
Sat Oct 13 10:30:47 MDT 2001


"Dhruva B. Reddy" wrote:

> On Fri, Oct 12, 2001 at 01:36:42PM -0600, quoth Alan Robertson:
> > "Scott A. Herod" wrote:
> > >
> > [snip]
> >
> > > Recently, I
> > > looked into a couple of big (pseudo-)open-source projects, Mozilla and
> > > OpenOffice, as well as learning to use VC++ with MS's COM specification.
> > >
> > > The code and design of these projects make me cringe in horror.
> > > ( So does perl but that's a separate issue. )  Are these things the
> > > future of software development or an aberration?
> >
> > They were designed and written as *commercial* products.  Both were
> > "open-sourced" as an afterthought.  It's not really fair to call them open
> > source projects.  I have a similar reaction to reading the code in FailSafe
> > -- for the same reason.
> > [snip]
>
> Actually, it is my understanding that the Mozilla developers took one look at
> the Netscape Communicator code, gasped in horror (or doubled over with
> laughter, I'm not sure which), and proceeded to rewrite from scratch.  If this
> is not true, why has it taken so long for the product to come to fruition?

Because there isn't a criteria for fruition.  Netscape had already decided to
start rewriting it before the code was opened.  They are also in the unique
situation of supporting half a dozen interface platforms and dozens of operating
platforms and they invented their own UI abstraction layer.  If it were simply an
html rendering system I'd buy this argument, but it's not.


> I am a relative newcomer to software development (4 years experience), and I
> was taught that forging ahead without a good design is a recipe for disaster.
> Indeed, in the commercial (OK, consulting) world I have seen both sides of the
> coin, and appreciate the importance of a well documented design that has the
> buy-in of everyone on he team.  While even this tends to break down over time,
> the product is *so* much easier to maintain, and the code is a source of pride.
>
> I don't see this attitude so much in open-source projects.  In fact, I have
> seen one project (whose name eludes me) that makes available any kind of design
> document (class diagrams, etc.).  On a similar note, I have not seen any open
> source CASE tools that I am comfortable recommending over, say, Rational Rose
> or Together, and I have attributed that to this attitude.

Class diagrams don't make a good design.  Lack of class diagrams doesn't make a
design poor either.

Which projects have poor design?  And why are they poor designs?

Implementation and design are completely different subjects.  Parts of the Linux
kernel are very well designed but they aren't documented well, they aren't
terribly well commented, and in my book that is poor implementation.   The design
is good, the code works, but it's still poor implementation.  For it's scope, I'd
say mozilla has a world class design and the implementation isn't that bad
either,  the implementation could use some work, there are performance issues and
I think it could be more documented (I never feel like there is enough documents,
never, part of my institutional heritage)  but the overall design is awesome. Look
at all the different derivatives and new protocol and standards they have added
without needing to change the design, that's good design.

Ian




More information about the LUG mailing list