Subject: Re: Software quality: free vs. proprietary
From: (Kragen Sitaker)
Date: Fri, 29 Oct 1999 09:32:34 -0400 (EDT)

Stephen writes:
> >>>>> "Kragen" == Kragen Sitaker <> writes:
> [some stuff]
> The anecdote I have in mind is the repeated statement in the
> management literature that formal software inspections catch most of
> the bugs.

I thought the number was usually below 50%.

>     Kragen> 4.2BSD, Emacs, gcc, and EROS are neither taillight-chasing
>     Kragen> nor cherry-picking.  The GIMP was, but isn't now.  KDE,
>     Kragen> GNOME, AbiWord, Linux, and glibc are clearly doing a lot
>     Kragen> of both.
> OK, I cannot oppose your judgement on which projects do tc&cp.
> I no longer use the term "taillight-chasing," by the way, because I
> don't know what it means.  It seems to imply "following the leader"
> but that isn't what I want to say.  What I had in mind was that
> (re)implementing a design composed of clearly specified features is
> much easier than starting without a spec.

Yes, that's what I meant.  And "cherry-picking" is picking the best of
other products' features to implement.  Of course these are both
present to *some* degree in every piece of software.

>     >> (it's reasonable to suppose that free software has entered
>     >> those parts of the industry where it has a comparative
>     >> advantage, or anyway least disadvantage, vis-a-vis the
>     >> proprietary model---thus it is going to be hard to maintain
>     >> current levels of efficiency and quality as the domain of free
>     >> software spreads).
>     Kragen> It is reasonable.  It is also reasonable to suppose that
>     Kragen> this is not the case.  Do you have some evidence one way
>     Kragen> or the other?
> Not for software.  But for everything else in the economic realm, it
> generally pays to do the easy thing first and build on that.

Sure.  Do people generally do what pays?  I don't think so.

> I would say given the results that a responsible vendor would offer
> the GNU toolset, at least as an option.  Do we have _any_ responsible
> vendors?  :-)

Red Hat and Debian :)

>     >> Where proprietary software succeeds, free software may continue
>     >> development,
>     Kragen> By "where proprietary software succeeds", do you mean
>     Kragen> "where proprietary software does not abandon the field
>     Kragen> because free software has not yet succeeded"?
> Yes.  By "succeed" I mean achieve clear superiority in the eyes of
> users.  This is necessarily somewhat hypothetical, it cannot be
> measured directly by the market test of who sells more.  (I'm sorry I
> wasn't more explicit about this, but I didn't realize what my
> definition was until I saw your discussion.)
>     >> but evidently in the eyes of consumers free plus bug-free (by
>     >> hypothesis) does not outweight whatever it is that the
>     >> proprietary software is offering, presumably at a higher
>     >> monetary price, besides.  So what's the relevant quality
>     >> measure there?
>     Kragen> I am not clear on what you are saying.  Are you saying
>     Kragen> that if free software is less buggy, but people still use
>     Kragen> proprietary software, then it is because the proprietary
>     Kragen> software offers them something they want that the free
>     Kragen> software does not?
> I am offering that as a possibility, not as _the_ explanation.  In
> particular, as long as users remain sufficiently uninformed that they
> cannot make a comparison, I would not admit any contender to be a
> "success" by my definition.

Users are *always* sufficiently uninformed that they cannot make a
comparison.  Being sufficiently informed to decide between gcc and
SparcWorks cc requires that you use each of them for several major
projects -- perhaps a year or so of work with each.  And there are also
Kuck and Associates cc, CenterLine cc, Portland Group cc, etc.  I don't
think *anybody*, *anywhere* is sufficiently informed to make this
*single* decision on the basis of an informed comparison.  And this is
just one program!  Many other choices have the same problem.

So people tend to use what other people use and recommend -- they don't
have time to try everything.  This makes sense from an
optimizing-the-utility-function point of view.  Is it included in your
analysis?  I think it's probably the single most important factor in
determining what software people use.

As an aside, IMO, this is why the Open Source guys are important.

> We shouldn't focus on debating points like fewer crashes; my wife
> doesn't care that Windows NT left to itself for a few score hours will
> exhaust memory and slow to a crawl (if that urban legend is true)---

My NT workstation at work doesn't do this.  It does crash periodically.

> our daughter never gives her more than 30 minutes with the computer
> anyway, and in a Japanese apartment she has to unplug it and put it
> away or there's no place to put dinner.

Believe me, I understand :)

> Of course to date fewer crashes has been a huge selling point; server
> uptime is a very big deal indeed.  The point is that as you move into
> different areas, different aspects of quality come to the fore, and
> cost may also have different weight.  To give a strained example,
> theoretically, a highly optimized proprietary kernel could run in less
> memory than Linux (but in practice they don't);

Some do.  QNX, I believe, uses less RAM than Linux, even when
performing similar functions.  I haven't used QNX, so I don't know.

In another message, Stephen writes:
> That's too generous to economics.  Economics does claim to have a good
> model of individual behavior.  It's simple enough to state, so I'll do
> it here:
> 1.  People have a good idea of what they want to happen in the world
> 2.  They have a good idea of what they make happen in the world
> 3.  They are pretty good at using the information they have to decide
>     how to satisfy 1 given 2
> 0.  They do as they have computed in 3.
> Clinical psychology, of course, is about people who fail to do 0.

Athletics and martial arts are about failing to do 0 by a smaller
margin.  So are typing classes, and so are the first few years, for
most people, of practicing playing a musical instrument.  In a sense,
so is much of Zen: learning to be detached so you are not controlled by
your immediate emotions.

Every bug in a computer program is a place where someone failed to do 0.

If you think you usually do 0, try the following exercises:
- if you're in Emacs, type a few sentences.  Then hit C-h l.  See where
  it says "delete" or "DEL"?
- try to hold your breath for two minutes.  If you succeed, try four.

I'm not going to slag off on economics itself until I know what I'm
talking about, so I'm not going to try it now.

<>       Kragen Sitaker     <>
Thu Oct 28 1999
12 days until the Internet stock bubble bursts on Monday, 1999-11-08.