Do we still need Frontend Web Frameworks? 🤔
If HTML, CSS, JS and the underlying web runtimes are getting more powerful, do we still need to depend on frameworks like React, Vue, Angular, and more?
Our web sites and apps have a come long way from their humble beginnings to be the glitzy and interactivity filled experiences we all love:
Now, I want to take expand a bit on the future where things are headed part. Looking ahead, are the same reasons that led to us needing web frameworks in the past still relevant in the future?
Do we still need to use web frameworks?
React was released almost 10 years ago in 2013. Vue followed shortly afterward in 2014. AngularJS was first previewed in 2009, and its successor Angular was released in 2016. If you can even recall what was going on back then, the world of web development was quite different! 🦕
This is where web frameworks really shone: they made up for critical shortcomings in the end-to-end web app development experience and capabilities:
React was all about improving UI performance. Vue introduced a lightweight templating mechanism. Angular made it easier for us to efficiently work with data. All of these frameworks simplified the complexity (in their unique way) of taking all of their app code and building a deployable app:
Some of the foundational gaps web frameworks had to close were no longer as valid in 2022 as they were in the 2010s. In some ways, web frameworks went from being a net-positive addition to our development experience to a more net-negative one.
Where does this leave us?
So, here we are. Web frameworks were designed for a time when the world desperately needed them. Today, the world has gotten better. It is possible to build a really powerful, performant, and maintainable app without using any web frameworks at all. One example of such an app is Visual Studio Code, which is a web-based app built without using any frontend web framework at all:
What is our action item here? Two paths stand out:
If you are working on an existing app that has years of legacy framework code already present, look into optimizing your framework code to ensure you are delivering something to your users that is both performant and accessible.
When using a web framework, you may think that the code you write is following all the best practices by default. Spoiler alert: It isn’t! 🔥
Now, you heard from me on where I stand. I do want to hear from you though. Please vote on my highly scientific Twitter poll and/or post your thoughts in this forum thread to discuss this with me directly.
Till next time!
Thanks for reading KIRUPA 🍊! Subscribe for free to receive new posts and support my work.
For any reasonably sized/complex data-driven application (which most UIs are) you're definitely better off using a front-end framework. Sure you can use web components (if you're okay sacrificing FP style code over OOP and classes - I'm not!), or even go vanilla - however, unless it's for a simple TODO app (or hardcore learning purposes), what usually happens is that you start pulling in more and more dependencies, to the point where you kind of end up reinventing the wheel and building your own framework which basically does most of what React etc is doing anyways (but probably not as good). React now, is not the same as back when it launched - if anyone, the React team been at the forefront when it comes to setting new standards for modern webdev and their roadmap continues to impress. Please also take into account that over time, internet coverage has improved a lot, connections has gotten significantly faster, computers are faster too. Long story short, yes there are indeed many many very good reasons to pick a modern frontend-framework today - especially for UI development. They're not making them for fun ;-)
Over the last 20 years, I've worked w. a variety of tech stacks, including RoR, PHP, Flash & Flex, Python and Django, Angular JS, React, etc.
Now that techs like AlpineJS and HTMX are available, it makes less and less sense to use things like React or Vue. We can leverage fewer techs, reduce stack/build complexity and still target about 85% of the UI use-cases out there. Obviously for something like Google Maps, or a much more rich, media-driven experience, it makes sense to use a robust UI framework, but for the standard text & image driven website w. basic forms, why incur the overhead of a SPA framework?