Robert sent me a great email that deserves to be on the Web. He doesn’t have a weblog, but gave me permission to post it here.

Might be of interest to you, if you haven't seen it already. Came across
this justification for constrained interfaces and unified namespaces...it
ties the argument to economics and the "Wealth of Nations" (Adam Smith).

Reiser File System v4 ( http://www.namesys.com/v4/v4.html )

"The expressive power of an information system is proportional not to the
number of objects that get implemented for it, but instead is proportional
to the number of possible effective interactions between objects in it.
(Reiser's Law Of Information Economics)

This is similar to Adam Smith's observation that the wealth of nations is
determined not by the number of their inhabitants, but by how well connected
they are to each other. He traced the development of civilization throughout
history, and found a consistent correlation between connectivity via roads
and waterways, and wealth. He also found a correlation between
specialization and wealth, and suggested that greater trade connectivity
makes greater specialization economically viable.

You can think of namespaces as forming the roads and waterways that connect
the components of an operating system. The cost of these connecting
namespaces is influenced by the number of interfaces that they must know how
to connect to. That cost is, if they are not clever to avoid it, N times N,
where N is the number of interfaces, since they must write code that knows
how to connect every kind to every kind.

One very important way to reduce the cost of fully connective namespaces is
to teach all the objects how to use the same interface, so that the
namespace can connect them without adding any code to the namespace. Very
commonly, objects with different interfaces are segregated into different
namespaces.

If you have two namespaces, one with N objects, and another with M objects,
the expressive power of the objects they connect is proportional to (N times
N) plus (M times M), which is less than (N plus M) times (N plus M). Try it
on a calculator for some arbitrary N and M. Usually the cost of inventing
the namespaces is much less than the cost of the users creating all the
objects. This is what makes namespaces so exciting to work with: you can
have an enormous impact on the productivity of the whole system just by
being a bit fanatical in insisting on simplicity and consistency in a few
areas."
Trackback

no comment until now

Add your comment now