How the separation of concerns makes programming magic | Dark Hacker News