One of the core values of Solaris is that sharable things really
should be shared.

This begs the related questions of
        What constraints does this place on the shared component, and
        What do you do when the shared thing evolves

Sun has a proactive development methodology that looks at proposed
changes to shared components and tries to determine their downstream
impact.  The focus is on setting and managing expectations; the "promise"
is that if you restrict yourself to reusing only "Stable" interfaces, you
can depend on us to ensure things keep on working; if you use Volatile
or Private interfaces, things may work fine now but could break unexpectedly
in the future.

Without this ability to manage the evolution of shared components,
it becomes extremely difficult to reuse them, because asynchronous
development almost guarantees that a change to the shared component
will break a consumer, and that multiple consumers rarely depend on
the same version.

The "solutions" that exist seem to
        require control of the evolution of the shared components (Sun...), or
        require control of the release process (gentoo...)
          "rebuild the entire world", or
        require control of the stack (blastwave...)
          "duplicate as needed to ensure we have what we need"
          worst case is redhat with multiple versions of every library.

Given the dynamics of the FOSS world, I'm not sure that there is *a*
right answer here at all - just a series of compromises that reflect
each individual's own personal risk tolerance.

   -John
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to