Some goals are so worthy. It's glorious even to fail.
“Program to an interface, not an implementation.”
Design Patterns: Elements of Reusable Object Oriented Software
The process of software development is breaking down large problems into smaller problems, building components that solve those smaller problems, then composing those components together to form a complete application.
“If it entertains you now but will bore you someday, it’s a distraction. Keep looking.”