Reversing Abstractions: An Existential Crisis
5 hours ago
- The author critiques the dominant 'forward/existential' approach in computer science, which hides implementation details, and advocates for 'backward/universal' approaches that make details accessible.
- Examples of opting out of hiding include ABIs (public conventions) and DWARF debuggers (meta-level descriptions), with debuggers representing a universal approach that can recover abstract views from any concretion.
- The neglect of backward/universal methods contributes to software brittleness, contrasting with biological adaptability, and programming language research is particularly averse to this direction.
- Link-time optimization (LTO) currently delays lowering rather than lifting; the author proposes using debugging information to lift object code back to intermediate representation for better flexibility.
- Networking's hourglass design (IP) exemplifies a universal approach supporting diversity, unlike existential uniformity, and the author calls for similar thinking in language implementation.
- The author argues that software performance is now limited by social and cultural factors, not machine performance, so overhead concerns about universal approaches should not be overemphasized.