I think choosing a framework is hard because no framework is perfect. Every framework under consideration is like a Porsche with a gaping hole in the side that just ruins it. The very act of choosing a framework means that you are knowingly accepting every little ugly wart and blemish of that framework, and explicitly saying “Yes, I want to deal with that problem everyday for the next few months!”. We aren’t built to choose things that are going to cause problems for ourselves.

It’s one of the reasons I always revisit the state of web frameworks now and again to see what pain points have been cleared up and what new ones have been created.