vs
> Abstraction hides unnecessary detail.
Sounds like these ways of describing abstraction are in agreement with one another to me.
If you hide what’s unnecessary you’re left only with the things you think should leak. And you think they should be left unhidden so that you can use them for something, so to leverage them.
So it's kind of bottom-up/"data" driven as opposed to abstraction being more "engineered into" the system.
That is, to me abstraction is building things such that they look the same. Generalization is discovering things are almost the same if tweaked a little to look the same under a certain lens.
Does that make any sense? In this view I guess the generalizing lens can be become the basis for an abstraction. I would assume the loop is closed between the two somehow but I can't quite see it.