Tradeoffs in Complexity, Abstraction, and Generality · HackerLangs