For the past year I’ve been experimenting with frameworks in different languages. I picked up a Rails app for the first time since version 3, I put together a couple Slim apps, I build one microservice in Flask, I’ve been doing a some Express work this month, and we just started using Angular 2 at The Graide Network in addition to CodeIgniter and Laravel.
All these frameworks have different meta-opinions about the role they should play in my code. They range from the very opinionated (Rails, Laravel) to barely being more than a router (Express, Flask). As a developer with several years of experience, I have some of my own opinions, but I must admit I do still enjoy frameworks that have more of their own.
A few reasons I like opinionated frameworks:
- Relieve me of the cognitive load surrounding how and where I should write code
- Give me more common ground with other developers using the framework
- Answers common architectural questions for me.
The downsides are basically just corollaries, and I get that there are pros and cons to each approach. At the end of the day, most web applications have 5–6 core functions that I think every framework should have an opinion about, even if the framework’s paradigm can be broken.