3 ms·
I guess I'd go the other way and say that all abstractions are leaky... except perhaps abstract math? At least more CS folks have started to realize that not on
by kurthr 5y ago
I guess I'd go the other way and say that all abstractions are leaky... except perhaps abstract math? At least more CS folks have started to realize that not only are their libraries useful, but questionable... so are their floats, their compilers, their databases, their OSes, instruction caches, RAMs, etc. Knowing the boundaries of your abstraction is crucial!
The key is knowing where your abstraction is likely to break down and having some bounds checking and fault tolerance to deal with to makes things robust. At the same time having abstractions (or models for Engineers and Physicists) that are all encompassing tends to make them so complex that they aren't very useful or even comprehensible.
To the extent that knowledge is a model for how the world works that we can hold in our heads and reason about... the usefulness of the model is often inverse to the accuracy outside of its bounds. Including general rel or quantum effects in most earthly trajectories is so complex and useless that it's silly... and yet at the same time we "know" newtonian mechanics is "wrong".
I'd be happier to say that I know how to build a robust house of cards for the situation. That I know there are gaps in the foundation, and I know when it's important to fill them in, and how much. At the same time, stress testing, realizing fundamental dependencies, and knowing how things can fail often just comes from experience.