What’s the obsession with micro frameworks?

Popular micro frameworks in various programming languages

I was doing some research on java frameworks recently for a project and was excited to see a slew of newer Java (and Kotlin) based micro frameworks. Even Spring was pitching how with it’s latest version, Boot, acts as a micro framework.

I haven’t used Spring / Struts in ages but was very excited to see them upping their game. Jooby, Spark, and Jodd also look expressive and impressive. They’re not alone. With Python you have Flask and Pyramid. In PHP you have Slim, Lumen, and Erdiko. Every major server language has numerous micro framework options. Which got me thinking…

Why all this focus on micro frameworks?

There are good reasons there has been a lot of focus on these new approaches to frameworks and architectures. It was only a few years back that folks only cared about MVC and the variants.

Here are some possible explanations for the proliferation of micro frameworks.

  • JavaScript and the front-end got smarter. Single page apps (SPAs) on the web can feel like native apps now.
  • Related to previous bullet, goofy architectures for rendering on the back end are no longer necessary. Rendering complex blocks and layouts can significantly bloat a framework.
  • Developers want to use the best libraries in each language not just the “blessed” version that a large framework offers. Framework agnostic libraries can take on a life of their own. Micro frameworks give you more control over how to leverage these libraries.
  • More diverse developers and apps. Software tech moves fast and the number of innovative starts up are high. More time is being spent on alternatives to the traditional monolith and the frameworks they’re built on.
  • And last but not least microservices! This is the elephant in the room. As the interest in SOA and microservice architectures increased the needs of a framework has changed.

Large frameworks still have their place of course, but micro frameworks offer a wealth of options in how you architect, develop and deploy your API or web applications.

I’m curious what micro frameworks people are using and if they live up to the hype. Let me know which ones are working for you.