What is abstraction? Can we have a precise definition of abstraction that, once understood, makes writing software simpler? Runar has thought a lot about abstraction and how we can choose the proper level of abstraction for the software we write. In this interview, he explains these concepts using examples from the real world, from SQL, from effectful computing and many other areas.
We also talk about how to learn and acquire the skills necessary to understand abstract concepts like very polymorphic code and category theory.
Runar also explains his latest project unison computing and how it uses the correct level of abstraction to rethink several foundation ideas in software development.