tobr
2 days ago
It’s a fascinating design approach. Taking a few basic primitives (paper, ink) and seeing how much mileage you can get out of them without interfering with their fundamental behaviors, but also without adding new primitives. Most interaction design would add a new primitive for every high-level user need instead. Which to be fair probably makes more sense for practical product design needs. But the ability to compose/decompose sophisticated behavior from/into smaller parts I think is a hallmark of software that really works as a predictable tool with a high ceiling for what kinds of problems you can tackle. I guess well-designed programming languages are a perfect example of that.