HeadlinesBriefing favicon HeadlinesBriefing.com

Reversing Abstractions: An Existential Crisis

Hacker News •
×

The article critiques the "forwards and existential" approach to programming abstractions, where a desired abstraction is realized and its implementation details are hidden. This "existential quantification" allows implementers to change details without affecting clients. However, the author argues for "reversing abstractions," highlighting examples like ABIs and debuggers (specifically DWARF) that "opt out" of hiding.

ABIs use a public convention for interoperability, while debuggers operate at a meta-level, consuming machine-readable descriptions of implementation details. The author posits that debuggers employ a "universal" approach, capable of recovering abstract views from any concretion, contrasting with the "existential" model. This "backwards" and "universal" perspective is presented as crucial for robust and flexible infrastructure, likening the current "existential" approach to brittle, crystalline structures rather than adaptable biological organisms.

The author criticizes the "orthodox neglect" of universality and working backwards, arguing it makes software brittle. The article suggests that modern programming language implementations increasingly "own" tooling and enforce uniformity, leading to monoculture and hindering innovation. The concept of link-time optimization is used to illustrate how "going backwards" (lifting to an intermediate representation) is often avoided in favor of delaying "going forwards" (lowering).