3 ms·
yes, lately the Butler Lampson quote echos round my head "All problems in computer science can be solved by another level of indirection" The problem is, we ha
by tlarkworthy 5y ago
yes, lately the Butler Lampson quote echos round my head "All problems in computer science can be solved by another level of indirection"
The problem is, we have been adding layers of indirection for 80 years, and each is leaky. So now it's very difficult to do basic stuff, and people are ok with software thick with abstractions.
The next stage should be removing unnecessary layers of indirection, as, like you said, things are much easier to understand and maintain that way.
- randallsquared 5y agoIt's very easy to do basic stuff. It's hard to do basic stuff (or anything) well, since you end up having to solve problems that should have been solved by layers you're building upon.
- tejtm 5y agoThe remainder of the quote Butler quoted matters; "All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection." -- David Wheeler
- hinkley 5y agoAnd performance. You speed things up by removing a layer of indirection.
- eternityforest 5y agoWe haven't been monotonically stacking layers steadily. In fact sometimes we collapse layers into monoliths. Sometimes we rebuild layers and make them bigger. But we don't have 900 layers or anything. Performance is... usually pretty darn good, except for uneccessary disk writes. It's trivial to do basic stuff because of those layers. What's hard is doing low level things from scratch in a way that doesn't conflict. But at the same time, there's less and less need for that. I think things are way easier to maintain with a bunch of layers than the old school ravioli code. Most layers are specifically meant to make it easier to maintain, or they just formalize a layer that was already effectively there, but was built into another layer in an ad hoc manner.
- webmaven 5y ago> I think things are way easier to maintain with a bunch of layers than the old school ravioli code. Pasta-based metaphors are the best.