As developers, we often find ourselves looking for ways to be more efficient. For many of us, this means turning to front-end frameworks. Whether it is robust, full-featured frameworks like Bootstrap or Foundation or more foundational frameworks such as Skeleton or Pure, developers are turning to these tools to get a jumpstart on web projects.
Advantages of Using a Front-end Framework
First, let’s take a look at a few Advantages of using a front-end framework.
- Easy and quick to get started.
- They are great for prototyping.
- You can gain momentum by “getting something on the page”.
- They are handy when you are against tight deadlines.
- They provide a solid foundation for responsive design.
- Components of the UI have a base style to be extended (forms, buttons, navbar, etc.)
- The base styles persist throughout.
- They provide a consistent UI design for developers who lack design skills, which is great for things like intranet sites or documentation.
- They provide a base development for non-developers to get something up quick for prototyping or mockups.
Good looking UI, even out-of-the-box
- Components of the UI have a base style to be extended (forms, buttons, menus, etc.)
- The base styles persist throughout.
- They provide a consistent UI design for developers who lack design skills, which is great for things like intranet sites or documentation.
- They provide a base development for non-developers to get something up quick for prototyping or mockups.
Code is reliable and tested
- Code is widely used, especially open source.
- Cross-browser compatibility is built-in, so you know where it will work.
Help is readily available
- Front-end frameworks are widely used, so answers to common problems are easy to find.
- The documentation is usually thorough.
- Free and professional themes and templates may be available.
Disadvantages of Using a Front-end Framework
While development frameworks have been gaining in popularity over the past few years, not all frameworks are created equal and often a front-end framework is not the right tool for the job. Here are a few disadvantages I have found to using them:
They can be too opinionated
Although they are easy to get started, they can require more time down the road to add features and customizations. You might find yourself fighting the base styles with overrides (wasting all that precious time you saved) to get the desired results. This can also lead you to write code that does not evolve gracefully as the project needs change.
Note: Some of these risks can be mitigated by selecting a framework which is more flexible or closely resembles your project. I would advise testing out different frameworks, so you have a better understanding of the advantages and limitations of these tools when a new project comes along.
You’re not learning how to code
It is easy to fall into the trap of only learning the framework and not learning how to develop. You often miss out on valuable experience with the underlying technology. If you are not already an expert, it is important to understand the code which powers the framework. This knowledge will make life a lot easier when you run into complex challenges and will make you a better developer overall.
Updates can introduce issues
- Updating may introduce conflicts with your code.
- When it comes to updates, at the mercy of the framework developers. Sure, you can choose not to update, but you then risk falling behind.
Technical debt
- Developers coming onto the project will need to understand the framework in order to contribute.
- “One-size-fits-all” frameworks tend to have a larger footprint and can add unnecessary bloat to your project.
Conclusion
As with most development decisions, the choice to use a framework and which framework to use should be made based on the requirements of a specific project. What may be perfect for a small marketing website, may not be so great for building a highly-customized web portal. With new frameworks popping up frequently, but as developers, it’s still important to be diligent in selecting frameworks that suit our needs and the needs of our clients.