The Third Hard Problem

· databases · Source ↗

TLDR

  • Mapping a general graph onto a hierarchical tree structure is a third fundamental hard problem in CS, alongside naming and cache invalidation.

Key Takeaways

  • Tree mapping appears in file systems (organize by component vs. language), writing (linearizing idea webs), city planning (Levittown vs. Siena), and biological taxonomy.
  • File systems remain tree-shaped skeuomorphs of physical folders; experiments like BeFS and WinFS with web-like structures never displaced the status quo.
  • Google’s monorepo approach and tools like Bazel/Blaze are a direct response to the component-vs-language tree-mapping dilemma in large codebases.
  • Cladistics replaced morphological taxonomy by preserving ancestry connections rather than imposing artificial trait-based hierarchies, reducing misclassification.
  • The problem also lurks in MongoDB schema design, OOP class hierarchies, and Rust’s ownership model, where object interaction graphs exceed tree structure.

Hacker News Comment Review

  • No substantive HN discussion yet.

Original | Discuss on HN