| Thanks for this article, I am a beginner in this space. I think systems suffer from interaction permutations complexity and the approach to look for a fundamental building block fails, because There Is No Primal Particleâ„¢. So we try introduce fundamental particle such as "everything is function", "everything is a list", "everything is a type", "everything is a file". It doesn't work. We do it to keep it in our heads but as soon as the design hits a real interaction, we have to get detailed again. The C++ spec is enormous and very detailed. Kubernetes. How does multithreading interact with garbage collection? How does async Rust interact with the borrow checker? How does your type system interact with - everything else? How does DNS going down interact with the rest of your cluster? How does autoscaling fail if your Docker repository is down? Can you rebuild a machine if your debian packageserver is down? How does POSIX interact with security? What's the building block between things itself? I am currently trying to design tooling around state space exploration and new type generation from interaction combination information by modelling interactions directly. And the fixpoint of interactions between interactions. (I am inspired by the Nothing I understand of TLA) My dream: I am told by the computer what interactions I need to handle to handle all the cases I throw at the computer. |
It works the other way around. You as the designer tell the computer which interactions it should handle and how. There are sadly no ways around that.