As programmers, we know that the right abstraction unlocks new ways of thinking about the problems we solve. But can they do more? Can an abstraction exemplify our values? What might that look like? How would it feel to use? Do these words I'm typing right now even make any sense?
I'd like to share a recent experience with Elixir and Phoenix that convinced me, more than ever, of the power a well-chosen abstraction can have to create a truly joyful development experience.