DEV Community

Discussion on: What is an abstraction?

Collapse
 
ben profile image
Ben Halpern

Great post, as always, Eric.

I have a thought about this line:

There is a lot of distrust of abstraction in our industry, and I think rightly so.

What about the abstractions that are so helpful and natural that we don't even think of them as examples? Like how we might complain that special effects ruin movies, when the only examples we can think of are the ones that did suck, and the seamless effects go completely unnoticed or unrecalled.

Is it possible that the discourse is skewed a bit too much because it's easier to notice the examples that confirm our distrust?

Collapse
 
ericnormand profile image
Eric Normand

Hey Ben,

Thanks for the kind words.

Abstraction is supremely important in our work. I think we should distrust it more than we do, though, because 1) we don't understand it well and 2) it's too easy to do.

I think your example of special effects is spot on. In the hands of a master, or really good team, you never even notice the abstractions. Our industry is growing so fast that masters are rare. Since it's easy (and fun) to make abstractions willy-nilly, we tend to get lots of bad ones. If we had some process for making good ones, we could learn it and teach it. But right now, we don't really have one.

Really, I'm kind of ashamed. I've been programming since I was 12. I went to college. I have a Master's in Computer Science. And I've never read or written much about abstraction. I've tried to find stuff written on it, and there isn't much. We're unaware of what we're doing.

Rock on!
Eric