Opinionated Frameworks Are Not Evil
Let me say that again, opinionated frameworks are not evil. They are a solid choice for an organization to make when deciding on a development strategy. My experience with Spring Boot at a number of previous positions confirmed my opinion. There are times when you should start from scratch, developing a complete infrastructure and framework from the ground up. However, in my opinion, those times are few and far between in the real world.
When you search for opinions on this topic, you see arguments on both sides of this discussion. Some are, shall we say, very uncomplimentary when it comes to opinionated frameworks. Let me take you through some recent discussions here at Yipee.io (and there were no fights during this process).
It’s the words every developer wishes for, management agrees to a rewrite of a product or component without restrictions (other than the fact that the rewrite needs to be done by tomorrow). At Yipee.io, we are rewriting our user interface to better serve our users and provide a superior experience when interacting with our product.
As with most rewrites, our team decided to evaluate a number of products and frameworks to use in the rewrite. As you can imagine, a number of products bubbled to the top of the pile, including Angular CLI, React, and Vue. Some of these are strongly opinionated while others aren’t.
Frameworks vs. Libraries
The team needed to decide if an opinionated framework like Angular CLI was the best choice or if a view library like React or Vue would be the best decision.
Having used Spring Boot (an opinionated framework) in a previous life, I appreciated the fact that a number of decisions were already made for developers. These opinions provided several benefits including fast startup time, good documentation, and easy to use tools customized to the framework.
Going with an un-opinionated library like React or Vue provides the user interface components needed to build our user interface, but the scaffolding that surrounds the application needed to be either included or built. We could certainly add that scaffolding ourselves, or use an existing pattern, but choosing an opinionated framework would provide the scaffolding we need to build our product.
Why an Opinionated Framework?
Let me first say that an opinionated framework limits your freedom. You have fewer choices to make and you must live within the architecture that the framework developers determined is the “correct” way to use their environment.
This is, however, the benefit of using an opinionated framework. If you can live within the limits of the framework, your time to market is significantly improved as you do not have to make the myriad of decisions you need to if you start from scratch. Our developers were up and running with the new Angular CLI framework in less than a week and within two weeks had rewritten a significant portion of our application.
The argument heard most often is opinionated frameworks stifle innovation and creativity. A developer is confined within the framework and cannot breakout to develop truly innovative concepts. I would agree with that statement if the aim of the project is to build a user interface framework for reuse within the company. But that is not the aim of our project, we are here to build a new user interface.
As a small company with limited UI developers, our time is better spent in an existing opinionated framework that provides our developers the ability to innovate in the area that matters most, providing a world-class user interface for the most important people in the world, our users.
Perhaps when Yipee.io graduates from the startup fold, we will have the opportunity to build a truly innovative library or opinionated framework from scratch, but until that time we are using Angular CLI.
Interested in learning more about Yipee.io? Sign up for free to see how Yipee.io can help your team streamline their development process.