In article <20010129234346.B3030@andrew>, "Ari Heitner"
<[EMAIL PROTECTED]> wrote:
> A *good* example is GL. I can have the software Mesa renderer installed,
> or any of several flavors of hardware GL from my vendor, or even perhaps
> funky stuff like a distributed-rendering GL.
>
> *all* obey the contract of
> - living in libGL.so.<version>
> - providing the GL functions
Funny you mention GL. I clearly remember Stephen Baker railing against the
situation of having multiple GL libraries installed on the system.
Apparently this has been a major headache for GL developers and
especially end users. I wish I could find the message, but I think it was
on the old Mesa list (before they moved the list to SourceForge) and I
can't find an archive. Of course, the *theory* of what you describe is
sound, just as the theory of COM's versioning is sound. It's in actual
implementation that things run afoul. Too often, the contract *isn't*
obeyed. Sound familiar?
Any versioning system involves some rigorous attention to detail whenever
release time comes around. That is unavoidable. Developers must be
familiarized with where that attention is needed, and proper protocol
must be observed. This is important enough that it needs to be checked
and double-checked.
Brendan says that Mozilla is "limping along" on COM's versioning system.
But from what I can see, Mozilla is barely using COM's versioning system.
As with the GL library problem (which is subsiding on Linux at least, now
that Mesa is bundled with XFree86), I think this is more a problem with
the implementation of the theory rather than any fundamental flaw in the
theory itself.
Braden