dagblog.
← Archive

I want to believe


An unpredictable turn of events gave me a thought I’d like to share. Recently, over lunch, I had a debate about what we gain from the frameworks we use or want to use. On one side I was dug in with my arguments. On the other was someone who basically said that if we use code we can’t see all the way into, we don’t know exactly what’s going on in there. It’s a reasonable point, but how far does it take us?

Where do we draw the line on how far in we need to see? I don’t know exactly what happens in the transaction manager. Will I write my own? Probably not. I don’t know exactly what goes on in the database. Will I write my own? Probably not. I don’t know exactly what goes on in the file system. Will I write my own? Probably not. Where does it end? At the operating system? Is that too little or too much? When I use an abstraction, whatever its level, I voluntarily give up seeing what’s happening inside and how it happens.

Using software components, or abstractions if you prefer, rests above all on the fact that I want to believe that a given abstraction works and that what happens inside happens correctly. If that weren’t true, the entire software industry would collapse under the weight of inefficiency, because everyone would do everything themselves. So if someone argues that using someone else’s code is dangerous because we can’t see what goes on inside, ask them whether by the same reasoning it makes sense to use an operating system or a database at all …

Medium version

Related articles

Related CZ Podcast episodes