Subject: Re: Exploring the limits of free software
From: craig@jcb-sc.com
Date: 24 May 1999 03:56:11 -0000

I have lots of catching-up to do reading the discussions on this list over
the past few weeks (I've mostly skimmed these to date), but I thought this
was worth mentioning.

It's undoubtedly been mentioned before, but somehow I didn't see it,
get its "importance", or whatever.

During LinuxExpo, my wife, who attended (and picked her own talks to attend,
not always the ones I attended), and found it very interesting, followed
up one talk (DJ Delorie's?) by asking me if it was true (as stated) that
Cygnus was the prime mover/shaker (or however it was put) behind
free-software such as gcc.

Being sensitive to the "Cygnus dominates free-SW development, sometimes
to the detriment of the free-SW community" argument, I thought carefully
about how to respond.  (I didn't want to just restate, unfiltered, the
hysterical anti-Cygnus rants I sometimes see, but wanted to provide as
clear and direct an explanation as I had at hand, especially given the
pro-Cygnus sales-pitch-like talk she'd just attended.)

While explaining my understanding of the situation, it came to me to
explain that, naturally, *funding* of free-software development drives
some substantial chunk of it, as does purely the joy of *doing* such
development as a volunteer.

And, as a for-profit provider of maintenance (&c) of free-software
products, Cygnus is very successful at being what amounts to a
"collection-point" of much of this funding of free-software development,
though, as a for-profit organization, its mission is *not* to redistribute
these funds as donations to individual developers.

The value free-software developers get out of this relationship includes,
at least in my case, Cygnus:

  -  helpfully hosting some of the development projects, so I don't have
     to muck with that (or with gnu.org's attempts to host such things)

  -  providing some reasonably balanced input on how the projects should
     proceed, in that some of this input comes (pre-digested ;-) from
     their paying customers, other of it comes from Cygnus' own employees,
     who, as maintainers, have the same kinds of motivations to keep
     the code simple, clean, and elegant as do I

The former item can be reasonably-well picked-off by non-profit
organizations (e.g. gnu.org getting its Internet-presence act together,
or whatever), so Cygnus' role in that could be seen as no less than
keeping its finger in the dike for the rest of us for the past several
years, if not any more than that.

The latter item is invaluable to me, though.

In particular, my wife picked up a brochure on something new called
Software eXChange, which I have yet to look into, but her capsule
summary was something like, potential sponsors of open-source development
specify needs/funding at this forum in which potential developers of
same meet them and come to some sort of agreement, "guaranteed" to
include requiring publication of results under an open-source license.
(Again, this is my first impression based on second-hand info.)

Taking into account the fuzziness of the above description, I have
one major concern with that sort of project "taking off" (in addition
to all sorts of *positive* warm-and-fuzzy vibes about it).

The danger I see is that the formalization of a "bazaar" for
product improvements could quickly turn into the kind of feature-race
leading to unmaintainable bloatware that has given the world things
such as MS Word.

If that happens, presumably that market would begin paying the price,
as the costs of adding more features to bloatware increase, at the
same time that the same bloatware becomes less and less interesting
to those who value well-designed software.

But it would still be a painful road to go down, because it'd amount
to the usual kind of technological cul-de-sac that is hard to
get out of (users don't want to give up "compatability" with a
system that is inherently hard to be both backwards-compatible *and*
improvable/maintainable/evolvable).

In my case, I don't mind at all the idea that there could be a
formidable number of new "helpers" adding features to g77 for
sponsored "funding" *per se*.

What concerns me is that this bazaar would put tremendous pressure
on me, as "official" g77 project leader, to put all these features in,
regardless of their suitability for official g77, because, after all,
they'd already been implemented *and* paid for.  (Though, it's not
necessarily the case that these agreements always include getting
the patches into the official release version of the product.)

Now, assuming I remained official g77 project leader during this
period, I might resist these kinds of problems reasonably well,
because of my experience with maintaining medium-to-large chunks of
code, like g77.

But, the pressure would still be great, and would be harder for
another person as g77 project leader -- perhaps someone better-
acquainted with the Fortran audience, but not a compiler person --
to resist.

(A reasonable conclusion to make here is that there'll be pressure,
in various forms, to replace people like me with more pliable
project leaders.  In fact, I'm already feeling that pressure.  It's
not entirely clear that's a bad thing in my case, since I believe
g77 really needs some fresh leadership anyway, but that's a whole
'nother topic...but, this is the same kind of scenario that leads
to efforts by the legal profession to ensure more and more ignorance
is represented on juries, since such people are usually more pliant.
I believe the market ultimately does solve these sorts of problems,
but only *after* enough of it recognizes them.)

Enter the latter bullet item regarding Cygnus' contributions.

As a *maintenance* organization, having the "right attitude" about
open-source software (e.g. making it better, rather than, say,
making it worse so as to get more contracts fixing bugs, which is
a business model some other companies might well pick when entering
the OS business down the road!), they have a vested interest in
resisting making the official versions of products unmaintainable,
because they're *paying* the maintainers themselves.

The less they have to pay the maintainers, the more profit they make,
assuming nothing else changes.  (Maintainers prefer clean code anyway,
so that's a happy-factor that might accommodate salaries, but of course
the less time they spend fixing a bug or adding a feature due to working
on cleaner code, the more revenue-earning work they get done in a given
amount of time.)

It's hard for me to see how an open-source bazaar will accommodate
items like "will pay $1000 for keeping g77 code base clean for the
next six months", compared to "will pay $1000 for adding Cray pointers
to g77", for example.

So having an organization that sees itself as *responsible* for keeping
the maintainability of the free software it maintains high represents,
to me, a *value* to the free-software community.  Especially if that
organization derives its "mandate" from paying customers of that software,
customers that want the software to Just Work.

So far, my impression is that Cygnus pretty much "gets" this, at
the level of the maintainers with whom I deal, if not at management
level (but probably there too).

I think the above explains why I don't, *personally*, get nervous about
Cygnus being so prominent in many OSS projects, the way I might about
if MS become similarly prominent.

For example, if MS entered the OSS arena, say by writing, or improving
an existing, free-software web browser, it'd be reasonable to be concerned
that the result of MS's efforts would be a code base that'd be so
bloated and horrible that only MS engineers could reasonably maintain it.

("Of *course* Apache can clone our proprietary Web server's new features --
after all, the client side of them is on the OSS code we added to the OSS
browser we maintain".  But it turns out to be easier to reverse-engineer
a legacy operating system like PRIMOS from *machine code* than to figure
out MS's "helpful" OSS browser code that implements those features, in
this hypothetical scenario.)

After all, that's what MS has probably been doing with its Windows
incarnations.  (The more byzantine the interface and implementation,
however hard it is for MS, as the #1 software company, it's that
much harder for competitors to clone.)  Though I don't believe it's
necessary a high-level conspiracy to accomplish that, having seen
how bad code produced by just a few people working together, even with
the *best* of intentions, can be.  :/

So it's not unreasonable to look at a company like MS and point to
motivations they have that are *substantially* outside the arena
of benefiting the OS community -- motivations that could easily come
into play even while they purportedly "help" that community by lending
a hand improving/maintaining OSS.

Whereas, it, IMO, takes something of a conspiracy theorist to believe
that Cygnus ever tries to make OSS worse, either to get more bug-fixing
contracts *or* to make its comparable proprietary offerings look better.

(Which points out why Cygnus taking on the role of distributing
proprietary software *at all* wasn't simply a "business decision".
It increased the risk *as perceived by OSS developers worldwide*
that Cygnus would support certain OSS less than otherwise, if that OSS
was perceived as potentially competing with said proprietary software.)

Either way, without someone offering substantial evidence that Cygnus
actually *was* spiking OSS development, I see it as conspiracy theorizing
for now, though less necessarily-so since the switch to shipping proprietary
software.

Down the road, as OSS becomes more accepted (let's assume it does),
it's probably inevitable that new, splashy entrants to the market
*will*, in fact, have the sort of sinister motivations and methods
alluded to above, so I won't always assume people worrying about
that are conspiracy nuts.  But, to this point, pretty much anyone
actually *doing* substantially-funded OSS work is too busy trying
to convince the rest of the world that OSS is part of a sound
business model to figure out how to exploit it by making it *worse*.

        tq vm, (burley)