DRMacIver's Notebook

Abstraction and concretization

Abstraction and concretization

This is another draft bankruptcy post. It’s the only section I actually wrote from a longer piece called “opposing mental motions”.

Abstraction is when you take something concrete and make it more abstract. Dually, concretization is when you take something abstract and make it concrete. You can also think of these as “Zooming out” and “Zooming in”, which also captures the feeling of them pretty well: As you zoom out, you see more but can make out fewer relevant details. As you zoom in, you can see the details clearly but lack the bigger picture.

Abstraction is when you ask “What general principles is this an example of?”. Concretization is “What are some examples of this principle?”. When you abstract, you zoom out. When you reify,

This isn’t just a single step. You can zoom out to more and more general situations, or you can zoom in on more and more specific details.

For example, here’s a zooming in series:

  1. Replacing complex systems from scratch is a fraught business.
  2. Often you discover that many of the specific features of the original system were much harder and less well understood than you thought they were (zooming in on the problem from “fraught business”).
  3. For example in programming we’ve got the “second system effect”, where second systems typically go badly and part of this is trying to recreate all sorts of tacit knowledge in the first system and maintaining bugwards compatibility with it for users’ use case (This isn’t the primary thing second system effect usually refers to, but it’s still a thing that tends to happen in second systems).
  4. e.g. when Firefox replaced the original Mozilla web browser.
  5. A specific thing that happened in that development…

Concretization here is a gradual move from general claim to specific illustrative anecdote.

Concretization can fail. For example I think it’s reasonable to argue that Firefox is not actually a good example of the general principle (it’s also reasonable to argue that it is), and that maybe even second system effect isn’t really a good concretization because it tends to be more about the second system trying to do too much (I think it’s both). A concretizing move is not unambiguously correct, and tends to work to precisely degree that the audience finds it illustrative of the general point.

Abstraction is often tightly coupled with looking for an explanation for specific behaviours and responses.

For a trivial example:

  1. I was watching Foundation. I hated it, it was super boring.
  2. Why did I hate it? Well because it was mediocre. It was very well executed, but there was nothing interesting about it.
  3. This is an instance of a general pattern where things tend to try to polish off their flaws without finding a real strength to emphasise, and I tend to hate that.

Like concretization, abstraction can fail if you try to move to a general claim that isn’t actually true, or that the concrete claim didn’t demonstrate well.

For example, I was talking about how I hate Rincewind the other day (Rincewind is the protagonist of most of the early Discworld books. He’s the worst, and is the primary reason you should skip the early Discworld books). I might have claimed that I hated Rincewind because he was a protagonist who so clearly didn’t want to be there and didn’t want anything to do with the events of the story. This claim doesn’t hold up, and you can see that it doesn’t hold up by considering that Bilbo Baggins (the protagonist of The Hobbit) also clearly doesn’t want to be there, but I like him just fine. If this were the correct explanation for why I hate Rincewind, it would also work for Bilbo, so it cannot be entirely correct.

(The actual reason I hate Rincewind is probably that he experiences no growth or progress at any point. He starts contemptible, remains contemptible, and at no point has any desires other than the return of the status quo. The fact that he doesn’t want to be there is part of it, but it’s more like a refusal to engage with his world)

Here you can use the two opposing motions to check that your move in one direction is correct. You zoom out to the claim, then zoom back in to another example of that claim to see whether it works in the same way as the original. It doesn’t, so the abstracting move must have been wrong.

You can also fact check in the other direction by going “You have claimed that this concrete thing is an example of this principle, but is it not in fact an example of this other principle?”. e.g. the counterarguments to my use of second-system effect as an example of the complex systems thing have this form: They claim that second-systems go wrong for different reasons.

In this way, the two conceptual motions provide a stabilising effect on each other: The fact that we can move in one direction helps ensure that we can move in the other direction safely, without the process getting out of control or away from us.