When implementing a specific feature for a specific application, you're mainly concerned with the What. Yet when building a framework, you're mainly concerned with the Why and the How.
When I'm in my "flow state" as a programmer, what I'm constantly doing is finding ways to eliminate redundancies, learning to recognize that entire subsystems as a whole can be made entirely redundant if I simply took the time to search for higher-level abstractions.
Ruby 3 is an exciting update with lots of new features—yet I think it’s the psychology of turning over from major version 2 to 3 that is most vital to the future health of the Ruby community.
Ruby on Rails. Finally a language and a methodology of writing apps that felt simple, clean, fast, and maintainable. But then a few years went by. New updates to Rails. New gems. New client-side Javascript frameworks. New server deployment best practices. New things to learn Every. Darn. Minute. Suddenly, writing Rails apps didn't feel so much fun anymore. It felt difficult. And I felt guilty.