why isolated components

Joachim Durchholz joachim.durchholz@REDACTED
Thu Aug 21 17:04:03 CEST 2003

Laszlo Varga wrote:
> Really, why?
> What are the (main) motivations for kind a system?

Let me rephrase, in the hopes that I understood your question correctly:
What is the main motivation for isolating components?

The answer is simple. If you double the number of names in a program, 
the number of unwanted possible interaction quadruples. More generally, 
for N items, you have N*(N-1)/2 possible interactions.

The number of *intended* interactions between components grows roughly 
linearly (I think it's usually on the order of N*log(N), but whether 
it's really linear or not doesn't matter: the main point is that the 
number of wanted interactions is massively less than O(N*N)).

In other words, the number of unwanted potential interactions grows in 
an approximately quadradic correlation with program size.

To keep the number of potential interactions down, Parnas propagated 
"information hiding", cutting down on the number of interactions that a 
compiler will allow. (Information hiding is not intended to prevent 
programmers from looking into components, its for preventing components 
from looking into other components.)

Just my thoughts on the subject.

More information about the erlang-questions mailing list