I am sure there are no right answers on the topic of JavaScript frameworks, but maybe this discussion will still prove useful if anyone wants to weigh in. Don't worry too much about the distinction of "framework" vs "library".
Feel free to vouch for the popular ones, or offer a lesser-known answer.
Top comments (107)
Where my Vue devs at? All frameworks have their merit honestly; I'd say think about what core skills you really want to hone and pick a framework that will aid/reinforce those values. Personally, the lack of barrier to entry with Vue was a massive plus for me and to this day I'm yet to find something it can't do for me. I also think it'll give me a good basis to learn Angular at some point in the future. React is quite heavy on the JSX which, if you're not a fan of, might be a reason to give it a miss. However, it's very popular and common among lots of big companies, where there will be lots of good guidance and teamwork to support learning. Gatsby is one I want to learn desperately as GraphQL is something I'm keen on understanding and a framework that goes hand-in-hand with it seems like an opportunity. Smaller frameworks? I'm intrigued by EmberJS a lot. π€ There really is no right answer; framework choice is incredibly personal and will likely depend on the type of project you're wanting to work on. :3
Vue dev here! I agree with the low entry barrier of Vue. I love Vue because of its separation of concerns with the HTML, CSS, and JS. I found React a little "artificial" in its JSX but would be worthwhile to learn at some point. I haven't yet found a pain point for Vue.js yet and find it just what they say, "incrementally adoptable" π
Completely agree with what you've said here! Especially the point about separation of concerns. π
Just pointing out that react is a UI library so jsx along side of javascript is fine. You can have services or hooks that don't have JSX in them.
JSX just might be a shock to the system, for those who've not encountered it before, that's all I meant. Never was against JSX as a concept :)
Not a shock at all, I was quite used to JSX for a long time before its release and that's why I hate it. Anyone heard of PHP?
Thanks for your opinion about Vue. Currently I am solidifying my JavaScript basics. Will try Vue after a month.
Hey, that sounds great! Definitely get that core JavaScript knowledge down first. That'll serve you well no matter the framework. Good luck and have fun!
Thanks
Vue.js has a fantastic pro, and it's that you can add it to legacy projects with a simple
<script>
tag. That's how I used it for the first time.This is really good point, you're so right!
Try gridsome its like gatsby but for vue, it also uses graphql
This is a great tip, thank you. I'll check it out :)
I'm using Vue for 3 years. I am a little bit bored. Because there aren't enough Vue libraries. I found my needs for React. But I'm still using it. There is a lot of projects I've made with it.
That's completely reasonable. Vue is very much in its infancy to React and there's A LOT of documentation, support, and community for the latter. :)
Yep but still has a huge community :)
Vue Dev here. Just love it, especially the community around it and the sense that it is a community-led project from the ground up. I do wish there were more articles/libraries/projects focusing on it though. I often check out some exciting projects and then see they are only for React devs. React's popularity makes it a good framework to learn as well, with lots of job offers out there, but also much more competition.
But in the end, if you know one framework well and understand the language and how to build well-structured apps, you can easily transfer your knowledge to other frameworks. Just go with what gives you pleasure as a dev!
Couldn't have said it better myself!
I have a pretty decent understanding of react and learning vue 3 atm.
You should really learn react and try out Gatsby. The plugins for gatsby are insane, take off so much of the heavy lifting.
I've done a little React, and a lot of React Native. I'm v excited for Gatsby and the plugins you speak of sound awesome!
VanillaJS :D
Ah, I see. A man of culture! π₯
still the best framework
Agreed.
Not a framework in the typical sense as it's a compiler, but Svelte is nice. The generated vanilla js bundle can be used to create specific modules or you can create entire website and app with it.
I'd keep an eye on Plenti (built upon Svelte) but it's still pretty young.
Other frameworks are great, but it's a lot of bytes to load. I'm still a big fan of gatsby, even React itself but only for "Rich apps" with many potential interactions.
Preact helps a lot.
I've been experimenting with Svelte and I love it so far!
Svelte is pretty nice. There are some raw parts I'd love to see some attention to but much less overhead than a lot of the virtual dom frameworks.
Niiice Svelte is a love at first sight!
You should check out RiotJS - it clearly inspired Svelte, and has been around a lot longer
I really like the approach of Svelte.
It brings us back to basics like the 2000s (HTML, CSS, and JS), while still using the best bits of the modern world like reactivity, components, etc. All the magic happens behind the hood (as it is a compiler). It's easy to pick up, concise, fast, and well documented.
Is it worth learning?
I would say it depends on personal workflow and job market priorities.
For personal projects or for clients that don't have a particular stack in mind for their product, I would say it is def worth playing around with.
Unfortunately, the job listings for Svelte are still pretty rare. So for those looking to work for larger companies and increase their chances of getting hired, I would say React is still a standard pretty much and would probably be a safer bet.
How come nobody mentionned state of JS 2020's survey on frameworks? It does an excellent job at measuring the satisfaction, interest, usage and awareness across a huge number of respondants
It gives the most obvious and boring answer to the question though. in 2020 you have 9 frameworks and 6 of them are well established ones. I personally would love to find something new, something that's under the radar still.
As a Laravel dev, I would vote for Alpine.js!
youtube.com/watch?v=Qu5bvT1YVz8
This is hilarious π
As a Rails Developer, I vote also for Alpine.js;
I found it very easy to integrate (with CDN and without Webpacker!).
Is also super easy to use.
For the more complex scenario, I also use vue (but remain that I hate webpacker setup XD).
New to me... but seems intuitive after a quick look.
Does Laravel start with Alpine then? It was Vue last time I checked.
You can choose based on your personal preferences.
I am a fan of the TALL stack: TailwindCSS Alpine Laravel and Livewire
The TALL stack is the Get Stuff Done stack. Amazing for solo devs!
Absolutely! π
I could have not said this better!
I am very much still in React land and use Next.js for most projects. But am looking into both Blitzjs and RedwoodJS for my next project, both look very interesting and seem more much more opinionated.
Really enjoy using Redwood for my projects. They just released prerendering too!
Not sure what are the approaches into reducing interfaces between
Perhaps this is one of them.
Even though I took up Vue.js for its highly-recommended ease-of-learning for beginners, I'm beginning to see why Vue developers love Vue so much. It's clear where the HTML, CSS, and JS is and I personally find this a LOT less overhead than React.js with the JSX. I think another factor that pushes Vue to the top for me (other than Vue being incrementally adoptable!) is that its entire package is very small, especially after its v3 update (half the size of v2) and doesn't have a ton of overhead. But, overall, I don't hate on any frameworks (I don't want to, it makes me sad and contributes to nothing constructive) and think whatever works best for a given situation will do!
I am looking at Stencil.js.
I would say that JSX + TypeScript makes HTML strongly-typed, where you would normally lose typings at languages' interface; like between backend and frontend, and between JS and HTML.
Yesterday I was literally reading up about the differences between Turbo, StimulusReflex, htmx and others :D
Some comments may only be visible to logged-in visitors. Sign in to view all comments.