Thousands of Abstractions

3 min read Original article ↗

When you throw a spear, you know instinctively where it's going to land. Your brain is doing range and height calculations, estimating the drag coefficient, factoring for wind resistance and leading the shot. In other words, your brain is effectively doing hundreds of physics calculations a second, which at some point enabled it to survive another round of natural selection.

Homo sapiens are probably very good at doing physics.

It might be argued that this isn't doing physics, but estimating the answer with a specially designed biological neural network. I believe this is just as much 'doing physics' as the mathematical kind, since maths is a model we use to quantify physics and not a requirement of it.

Throwing things is not new. Neither is eating, swallowing, digesting, breathing. We're so good at those things, System 1 doesn't even have to notice them at all; the brain stem completely handles it for us. We're also pretty good at language, I'd say. You only need to think of the semantic content of what they want to say, and somehow it's translated into a sequence of mysterious pitch changes. And somehow other people know what you mean.

Except we only just started doing abstract thinking. Perhaps in the last few millenia. The exact number, of course, is up to debate; but it's fairly certain that this is a microscopic amount of time compared with the girth of human evolution. Maths for maths' sake, art for art's sake, and especially writing algorithms, are incredibly new to us. Everyone likes to think we're much smarter than monkeys, but our ability to think abstractly is incredibly primitive. So clearly we're not smarter than them by much.

Ask a programmer to catch a ball; and they'll do it, no problem. Ask a programmer to deal with more than 5 nested if statements, and you're going to run into issues. Abstract reasoning is almost an entirely new problem to us, and perhaps the only major instance of it in prehistoric times was object permanence. The concept of exact values is completely foreign to the human brain -- it naturally works in approximations and estimations.

So, it stands to reason that an average programmer should be able to handle hundreds, if not thousands, of layers of abstractions in a little while (read; a few million years). I think we'll grok this fairly quickly, given we're still in the exponential stage of technological development. It definitely seems we're heading that way given the current state of Javascript frameworks.

graph of a sigmoid curve, with a point labelled 'You are here' at (0, 1/2)


Forgive the clunkiness. This piece was entirely human-generated, and for all I said about language being easy, it doesn't mean I'm good at it.