So all in all it would be nice if we would for once be spared of rants how tiring, immature, half baked whatever whatever the JavaScript world is. Show us maybe how it should be really done, but maybe in a separate post please.
First off, you don't have to go learning every framework out there. Pick one and stick with it, or just go vanilla. That said, The features these frameworks provide gives a boost in productivity that far outweighs the low learning curve.
My pick was VueJS and I'm very happy with it. Using Single File Components is pretty similar to vanilla HTML/JS/CSS. Beginners that were under my guidance (with only HTML/CSS/JS experience) usually pick it up and were productive in the same day.
I disagree that React (JSX) is most similar to vanilla JS/HTML at all (I don't prefer it, but to each their own). Vue and Svelte are much further on the side of a vanilla-ish approach.
This sentiment is so old and played out.
It’s not just front end developers though. I think other domains and their frameworks went through the same thing. This is just the time for front end.
Plus, there are a lot of people writing JS. It’s not a tiny community fracturing itself over different ways of doing things, and becoming destined for obscurity. It’s tens or hundreds of thousands of developers. In a community this big I’d say having a few choices is a sign of health.
Python is 30. Django is 16.
I’m just picking a few frameworks and languages I’ve used in the past and are still used. Obviously there are still new frameworks and libraries that come out for these languages. But sometimes the big projects fold those in. Or they write their own or whatever. I can pick the popular names and do pretty much what I need.
JavaScript is 25. But most of that time we weren’t doing what we can now. And most frameworks are fairly young. Angular is 11. But most people (and jobs) have jumped ship to React(8) and now there is Svelte(4) which also looks good. And I think there will be more changes to come.
These JS frameworks aren’t exactly veterans that are impossible to supplant. Not yet anyway.
Plus you know all these front end frameworks are "just HTML/ JS/CSS" right?
Most of the popular frontend frameworks (Vue, React, Angular, Svelte) have been around for years at this point. It is like arguing Ruby on Rails vs Spring Boot.
React is 8 years old
Vue is 8 years old
Svelte is the relative newcomer, at 4 years (and the major third version at ~2 years).
The idea of "frameworks are changing every week" hasn't been true in a very long time
Anyone that's worked in a reasonably sized FE codebase can very clearly understand that changing your framework is essentially migrating a huge production DB but on steroids.
Where exactly have you seen a team of developers change their front end framework every week?
React is now 8 years old… so is Vue. What are these new frontend frameworks you keep seeing?
Most companies have settled on either React or Vue, which are extremely similar. Angular is used in some niches, almost always because teams already knew it.
Those three are responsible for almost 99% of the frontend positions you'll see.
Svelte is getting popular but so far it's still niche. It's more of an inspiration for others, but also a contender. And really, what's so wrong about having more options and more competition? Even if you want to stop learning new things, there'll be no shortage of job vacancies for the three frameworks above.
Also, since you're a backend dev, there are much more backend languages in use today than frontend frameworks, to give an example. And it's not hard to find companies using more than one.
Each of those Dagwood Sandwich layers has its own special purpose object system that leaks abstracts to all of the other layers, and its own domain specific languages for writing boilerplate that sprays those abstraction leaks all over the place. ;)
all of the js frameworks mentioned are view layer libraries. i.e. they create html. Hence they need a DSL for writing templated html, which will be used for generating final html
Hence, it is completely natural for them to offer a custom DSL as html does not have standard way of expressing those concepts.
Since each js framework has its own idiosyncrasies and motivations, custom DSLs reflect it.
If you were to go around and make a new js framework, you too are going to create a new DSL
It doesn't make react bad but I guess some newer frameworks (vue, svelte, I haven't learned those yet) try to tackle this from different approach.
Perhaps not in the "frontend community", no it hasn't slowed down. There will always be new frameworks coming and going, and people will work on them as fun open source projects or use them in their side projects or whatever. But people doing real work are almost unanimously settled upon React as an industry standard at this point. There's still a decent sized faction of contrarian Vue holdouts, but by and large the JS framework wars are over.
"There are too many frameworks! Why does everyone keep re-inventing the wheel? Why can't everyone just use the one that I like?"
It doesn't have a virtual DOM? It doesn't have synthetic events? Ok why not just use web components which provide their own encapsulation and vanilla JS. I don't have to learn a new language which may or may not be around/supported a few years from now... Also I'm continuing to grok web standards.
Rich Harris is going to work for Vercel, who are arguably most famous for Next.js, which is… React.
The abstractions are cool, but completely unnecessary (see link to my framework above where I circumvent that problem entirely).