It feels like every other week there is some new web framework popping up on HackerNews, promising to cause a ground-breaking paradigm shift. While some of these "innovations", like NoSQL databases or front-end javascript libraries, might make life easier for many developers, there's no question that these "innovations" have caused the technologies used by developers to become increasingly diverse, perhaps even to a fault.
The golden question that's been debated by developers for years, of course, is whether the abundance of options actually creates a net good for developers and users. So does it?
Let's take a closer look…
Framework Fatigue
As someone who does a good amount of front-end development, I can say with confidence that ReactJS makes my life easier. I love being able to create reusable components, handle inputs easily, and set up conditional rendering with a couple characters.
The potential issue isn't that a tool exists that makes our life easier. It's the fact that 20 tools exist to make our life easier in the exact same way.
Are there minor differences between React, Angular, Vue, Django, Ember, Meteor, and the 50 other web frameworks? Yes. Are you going to be able to successfully build almost any website no matter the framework you choose? Also yes.
The different use cases of these frameworks have little to do with the underlying technology, and more so are just a matter of preference.
New Hires
A common frustration that people have with the abundance of options is that it can make applying for developer roles particularly difficult. Many employers will list their specific tech stack as a requirement for the role.
While listing "Javascript" or "SQL" as a skill is definitely reasonable, when developers list hyper-specific web frameworks or database technologies, it creates a landscape where those looking for a job are forced to take a crash course in each of these technologies.
In reality, if you have the JS or SQL fundamentals down, it's not going to take you that long to adapt to your new employer's tech stack. The expectation that developers should know every specific technology prior to being hired is therefore counter-productive.
In addition, there is an argument to be made that having developers gain experience in all these separate, yet extremely similar, technologies makes it harder for the team to work together. A minority of developers actually get to choose their own tech stack(StackOverflow' 2020 Developer Survey), so a good amount of us are going to be left working in a framework that we don't prefer.
The Myth of Sparse Resources
I think an argument that gets thrown around a lot that does not have a ton of merit is the idea that as the amount of technologies increases, the amount of learning resources on each technology is going to decrease.
Let's be honest here, there's FAR from a shortage of developer tutorials. I'd be incredibly surprised if you were able to find a web technology that didn't have at least one article or a video covering how to use it.
Risk
Another common argument in this debate is that when the developer landscape is constantly changing, there comes an incredible amount of risk in choosing a tech stack.
We all know migrating to different web technology is hard, and that's why most companies elect to maintain an older tech stack instead of transitioning to the status quo.
These "innovative" web technologies, by nature of being new instead of being built on existing tech, can only be so effective in the short run. Chances are, by the time companies migrate to your new framework, a better framework is already being released.
A company looking to pick a tech stack is therefore going to be much safer building their software with vanilla JS, instead of a framework that can be deprecated or antiquated in a couple of years.
Competition makes us better off
Probably the greatest argument in support of the web development landscape we see today is that the competition among frameworks and technologies makes us better off. Would HTML5 be what it is today without Adobe Flash? Would we have React Native without Flutter or Xamarin?
The tech landscape is always going to evolve. We can at least find solace in the fact that the creators of new web technologies are going to try their best at making development easier, more secure, and more efficient so that they can capture the market.
At Codesphere, we're proud to be competing with the likes of AWS, Heroku, and Netlify because we think that we can make cloud development much easier for developers. If developers don't end up wanting the tools we offer, so be it. But we're confident that we can make a real difference in software development and we're excited at the opportunity to make our case.
Does this make things harder for new hires and companies picking tech stacks? Probably a little bit, but I'm not sure that the alternative is any more viable.
What do you think? Do we have too many options? Do you like getting to choose between so many different web frameworks?
Let us know down below!
Brought to you from your good friends at Codesphere, the next-generation cloud provider.
Top comments (5)
I don't think the fact that different companies use different frameworks is actually problematic for new hires. It's more just ridiculous for a job description to require knowledge in that specific web framework. I know HTML and JS well, so I'm going to be able to figure out your framework pretty easily, just don't expect me to be an expert before I even apply for the job...
Thats a fair point, companies should offer flexibility for time to learn different web frameworks and if at the end of the day the job gets done, it shouldn't be a problem.
Probably not an issue with the frameworks themselves - more just an issue with a lot of developers. Too many people "know" React/Angular and don't really know actual HTML/CSS/JS
I, on the other hand, blame React/Angular and similars for this. It doesn't make sense to write everything from scratch (DRY), but this basic knowledge is overlooked now that something already does them to the point that people just don't care to learn about them anymore. Why should they understand CSS, HTML or JS if this >function name here< fixes their problem?
There's these two things that give you fatigue: JavaScript and Linux