4 ms·
This is a nice analogy, but these days I feel like abstraction is usually a bad thing. By its very nature, making things more abstract makes it less clear what
by MattRix 9y ago
This is a nice analogy, but these days I feel like abstraction is usually a bad thing. By its very nature, making things more abstract makes it less clear what you are actually doing, you end up going through all these layers of indirection. If I want to use the data from some node (aka object) way over there, I should just be able to use it, without it getting pulled through all of these other things first.
To use the same node graph analogy, when you focus too much on reducing the number of colors, you end up needing to create tons of nodes between the nodes that actually DO SOMETHING. Your software ends up more complex and difficult to manage.
- ouid 9y agoIs your comment supposed to be an example of how abstraction is a bad thing? I have no idea what you're talking about.
- MattRix 9y agoMy comment makes sense in the context of the original article, if you didn't bother to read that, then I can't help you.
- pdpi 9y agoBy its very nature, abstraction separates the incidental from the fundamental (where "incidental" and "fundamental" are defined on a per-abstraction basis). If the problem you're trying to solve focuses on the fundamentals of the abstraction, you're most certainly gaining clarity (possibly at the expense of performance). If you find the abstraction's making you lose clarity, it might very well be that you're really working on incidental complexity, but there's also a distinct chance you just chose the wrong abstraction.
- MattRix 9y agoThat makes sense in a perfect world where the abstractions are perfect, but they rarely are. We make assumptions about the abstractions that often turn out to be false. Obviously a certain level of abstraction is necessary, but in general modern software development goes way too far with it.