yes.

there is much emphasis on people understanding an entire system, whereas often 
a programmer does not need to have such comprehensive understanding.

in a large codebase, for example, parts of the project will come into view as 
one works on them, and when one moves elsewhere they may pass away from memory.

with an abstracted system, pretty much the entire system may be viewed 
essentially as a black-box, with people looking at the externals but paying no 
attention to what happens on the inside. a person working within this system 
may in-turn see the system in terms of so many black-boxes, and at the same 
time view what happens externally as a sort of black box (or, as "outside of 
the current scope").

of course, this sort of thinking generally requires a fair level of 
standardization at the interfaces between these systems, such that what goes on 
inside the box does not break what is outside and vice versa.


so, often, one may define their APIs and/or data representations before 
actually having code in place on either side of the boundary (a non-existant 
app working against a non-existant library).

but, OTOH, this strategy does seem to scale fairly well, as with multi-million 
line projects, it is unlikely much of anyone will really look over the whole 
thing.

however, in these cases, it is fairly important that these boxes also be "open" 
(as in, the internals of a complex system are left where programmers can access 
them), since a "black monolith" is in turn of limited utility. so, some of this 
is tradeoffs.


  ----- Original Message ----- 
  From: Julian Leviston 
  To: Fundamentals of New Computing 
  Sent: Tuesday, July 13, 2010 7:33 PM
  Subject: Re: [fonc] goals




  On 13/07/2010, at 10:29 PM, Jecel Assumpcao Jr. wrote:


    The lack of scalability that I was talking about is where a system
    becomes too much for any person to understand. Though lines of code is
    very simplistic, Alan has compared code sizes of various projects with
    different kinds of books in a few of his talks. There are texts that
    almost anybody can read and there are others that nobody ever will.
    Certainly you can't understand something you have not read. So that is
    one bottleneck. I bet there are others - even in a system that is
    reasonably short there might be too many combinations of elements to
    understand:

    http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html

    -- Jecel





  This is extremely interesting to me, because I could ask you very simply:


  Do you understand the basic relationship between planets?
  Also... of how animal (including our) bodies inter-relate?
  Also... of how biological cells interact with each other?


  Do you see what my point is? Perhaps if one introduces scale properly, there 
is no limit to what one can understand.


  Julian. 


------------------------------------------------------------------------------


  _______________________________________________
  fonc mailing list
  [email protected]
  http://vpri.org/mailman/listinfo/fonc
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to