On Wed, Feb 17, 2010 at 8:14 AM, Stuart Morrow <morrow.stu...@googlemail.com
> wrote:

> On 2/17/10, Steve Simon <st...@quintile.net> wrote:
> >> And another important feature of shared libraries is, that when
> >> some lib is updated, importing programs dont have to be recompiled.
> >> What's the Plan9 solution here ?
> >
> > We recompile the relevant executables.
>
> also, plan 9 uses filesystems for many things that other systems use dlls
> for.
> if there's a bug fixed in a 9p server, existing programs can still
> talk to it without a recompile.
>
> stu
>

A lot of "plug in" functionality you'll find on other platforms that
requires a shared library approach can be implemented via a file system
service technique.  Instead of using the C runtime and calling conventions +
a shared library loader to call on some routines that the program in
question did not originate, it can use 9P via the file system to make what
equates to RPC calls to another process that serves the file system itself.


This actually buys one a lot in terms of the following:

1. Isolation of concerns
2. Isolation of faults
3. Composition/Debugging/Testing of solutions via a ubiquitous API/tools

How much more convenient can it get when almost all the tools you need are a
shell, cat/cp/echo etc, and some namespaces in order to build a complex
system from smaller, simpler parts.

I don't know why everyone doesn't want to build software this way.  This is
the same philosophy Erlang and Haskell (and other functional programming
languages) encourage just to write programs.

Dave

Reply via email to