[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ::scr Touchy Feely?



On Wednesday 23 October 2002 13:14, Ben wrote:
> On Wed, Oct 23, 2002 at 12:25:22PM +0100, Alaric B. Snell wrote:
> > A lot of compsci is about finding fundamental abstractions. We have
> > java.util.Collection classes, arrays, hashes, maps, tuples, lists, SQL
> > databases, filesystems, and whatnot when really they all just boil down
> > to variants on set theory! If people stepped back from the differences
> > and saw that it's all just sets then these things would logically
> > converge more, eventually sharing their interfaces so you wouldn't need a
> > different mental model for each of these things.
> >
> > Likewise locating resources on a network; it's nothing more than a
> > *reference*, like a pointer in C. URIs are, by chance, happening to bring
> > this together more but they're still distinct to your in-memory
> > references to objects.
>
> I have to say, I fundamentally disagree with this. A network-based
> 'resource reference' is fundamentally different from an in-memory
> reference.
>
> Why?
>
> The example you use, of URIs is exactly why. Networks that have proved to
> be the most useful to human communication (Internet, mobile phone, etc.)
> are highly entropic. As such, a resource reference, such as a URI, may not
> resolve in a timely fashion, or at all.

Neither may an in-memory reference! The memory page may have been paged out 
to an arbitrarily slow swap device, which may have broken, or indeed be on a 
SAN over Ethernet. The memory may have physically failed. In shared memory 
multiprocessor systems, the memory page may be locked by another CPU and 
require an arbitrary wait for it to be released.

The memory bus is not that different to an Ethernet, or a WAN. It's 
quantititative differences rather than qualitative. Memory buses tend to be 
more trusting, true - one doesn't firewall off one's RAM in most cases - but 
even then some systems do just that! S/390 clusters, IIRC, will firewall off 
potentially rogue processors if they seem to have failed or been compromised.

> It may well be *possible* to boil everything down to fundamental
> abstractions, such as set theory. The question is, to my mind, whether it
> is *useful* to do so.

It's always useful to see the underlying meaning of something. What harm can 
it do? People who misapply that information and cock it up would probably 
cock up the task even worse without seeing the underlying structure of it all 
and remembering the beating they got the last time they implemented a set 
wrongly :-)

<rant type="having a bad day anyway, venting steam">
> We can boil down our abstraction of an ocean down to quantum mechanical
> models of huge numbers of water molecules. It won't help us predict the
> tide.

Oh don't be stupid!

> In the example of resource references, just pretending that the Internet is
> non-entropic doesn't make it so.

Well done! What would I do without people to state the obvious at me?

> The network entropy is an important
> characteristic at the scale of the model which we want to work at. If we
> ignore those characteristics, we'll end up with a model, or a method which
> ill-fits what we're trying to do.

Yes, and if we set light to our heads we'll die! Oh no! Let's not use fire!
</rant>

<more-reasonable-response>
> We can boil down our abstraction of an ocean down to quantum mechanical
> models of huge numbers of water molecules. It won't help us predict the
> tide.

Sure, but what would be the point? Much better to abstract the ocean as a 
fluid in an irregular container being influenced by gravity, no? Just because 
you can make pointless abstractions doesn't mean you HAVE to.

> In the example of resource references, just pretending that the Internet is
> non-entropic doesn't make it so.

No, neither does pretending that memory is non-entropic make it so. This is 
particularly pertinent in multithreaded code or real time systems :-)

> The network entropy is an important
> characteristic at the scale of the model which we want to work at. If we
> ignore those characteristics, we'll end up with a model, or a method which
> ill-fits what we're trying to do.

Then clearly we are being stupid if we do that. But that doesn't make 
academic computer science bad. I mean, physicists could model an ocean as a 
quantum system of molecules to try to predict tides, but if you observe some 
real physicists you'll see that they don't, and what's more quantum models do 
come in useful in other situations.
</more-reasonable-response>

> Ben

ABS

-- 
A city is like a large, complex, rabbit
 - ARP