If I may make a shitty analogy...<p>Most humans see reality through the lens of high-level languages. A hyper-defined DSL of Ruby. Our everyday interactions and understanding of the world are both informed by that DSL. However, as people specialize into various areas they realize that there exists something deeper, something closer to the metal.<p>Eventually, Julie the scientist discovers that our language can be broken down into more discrete operations than our Ruby DSL would lead us to believe. After much study and experimentation she finds heaps of cryptic-looking code dedicated to memory management, CPU optimization, fault tolerance, etc. The more she studies, the more she finds. By now she&#x27;s uncovered machine code and developed an instrument to compile it down to an even more fundamental entity: binary. You can take this analogy down to the hardware level -- I&#x27;ll spare you.<p>But as human beings we cannot process the world in binary and still function normally. We can certainly think about it and after much effort place our experiences in that context. But we need the aforementioned abstractions to quickly and easily process that we need to run from tigers. Although we know the Ruby DSL hides many details of reality from us by its very nature, we ignore that out of pragmatism.