|
![](/i/fill.gif) |
http://www.xkcd.com/722/
A computer is a giant layer cake of abstractions built upon abstractions
built upon other abstractions.
http://www.xkcd.com/676/
At the bottom, a computer is a vast network of transistors connected by
wires. But when you think about it like that, it's far too huge and
featureless to make sense. But the transistors implement abstractions
called logic gates. And the various configuration of logic gates
implement higher abstractions such as flip-flops or counters. And
together these implement busses, registers and so on. And together those
make up I/O devices, processors and memory.
And that's just the hardware layer...
Trouble is, whenever I talk to people about how computers actually work,
I mention how one electronic circuit connects to another and they go
"oh, is that why if you open two web pages at once it sometimes gives
you an error message?"
I'm talking about layer 6, they're talking about layer 1382. Which is
somewhat higher than layer 6. Obviously.
Then again, short of sitting there giving somebody a 4-hour lecture,
it's difficult to convey just *how complicated* this stuff is.
Especially when Windows and related products try their hardest to
pretend that they're actually really simple...
Then there's the small problem that most people won't sit through even a
4-hour lecture, because they don't actually give a fig. And even if they
did, after 4 hours all they will come away with is a blury picture of a
huge tangle of abstractions made of abstractions built on top of
abtractions that use abtractions to implement abstractions that support
abstractions which eventually make something visible happen. In other
words, the whole damned stack is just so *abstract* that it's difficult
to comprehend.
Sometimes I think having grown up with 8-bit home computers gave me an
advantage. I'm probably just kidding myself...
Post a reply to this message
|
![](/i/fill.gif) |