DEV Community

Why React Won the Front-End Race

PRANTA Dutta on September 15, 2024

React, The king of front-end frameworks—or should I say "libraries," since React purists will remind you every 10 minutes that it’s not a framework...
Collapse
 
cmacu profile image
Stasi Vladimirov • Edited

It’s crazy how Vue hits all of these points in the complete opposite (positive) way, yet its so far behind react. I’ve been working with both professionally for half a decade and have no idea why anyone chooses react over Vue. And no, the react ecosystem is not bigger nor more mature. No, it’s not easier to learn. I think the only logical conclusion I can come up with is that developers enjoy complexity and making things harder than they should be

Collapse
 
leob profile image
leob • Edited

YES !

Vue is so much better, in all respects - it really beats me why people don't see that, and are torturing themselves with React "arcana" and ugly band-aid fixes like "useMemo" and so on ...

The reasons given in this article seem largely nonsense (everything stated about React is true for Vue as well, and for other frameworks) - I think the reason why React became more popular than Vue is just timing and "historical accident" - see my comment:

dev.to/leob/comment/2i5f7

Collapse
 
syakirurahman profile image
Syakir

As a dev who work on both React and Vue, i second this.

Vue is better, and easier to learn. But, i work more on React now, because thats what's my company use.

Collapse
 
mkvillalobos profile image
Manrike Villalobos Báez

Exactly! An "historical accident"... No more! Even React alternatives (like SolidJS or Preact) are far better!!!

Collapse
 
brense profile image
Rense Bakker

Since when is useMemo a bandaid?

Thread Thread
 
leob profile image
leob • Edited

useMemo is really a band-aid if ever I saw one - it's only needed because the framework (React) itself apparently sucks at optimizing rendering, and pushes that kind of "low level" responsibility to the developer ...

Also, I'm seeing way too many articles here on dev.to which advocate throwing in useMemo whenever there's a performance problem (as in, too many renders), while in many cases it would be better to analyze why there's too much rendering going on, and fix the underlying issue - again, useMemo used as a "band-aid" to plaster over the real problems :)

(of course sprinkling useMemo over your code indiscriminately will quickly lead to memory consumption issues)

But the deeper issue is that React forces the developer to worry about all kinds of "low level" issues (performance and rendering), which the framework should take care of itself - as other frameworks do ...

P.S. yes I know, with each React release it gets better, because they're putting solutions in place to "fix" what's broken - for instance, they're now introducing a compiler which will "intelligently" apply useMemo when needed ...

Nice - but all of that is IMO just papering over the cracks of a framework (eh, "library") which is fundamentally "broken" ... well, maybe "broken" is a bit too harsh - the point is just that React has chosen a rendering model which relies on fully rendering the component (then diffing it with the virtual DOM to optimize it), rather than other frameworks which rely more on "signals" to render stuff selectively ... this is a choice they've made, and I can't say it's "wrong" per se, but it does have consequences, and it does result in "limitations" ...

But hey, it's the "900 pound gorilla", and even I am using it when I have to, so there's that ;-)

Thread Thread
 
brense profile image
Rense Bakker • Edited

Actually yes, React is opting into memoizing everything now, which sucks. useMemo was incorrectly advertised as a performance enhancer. It's about controlling state. Passing an object as a value or reference means something completely different. useMemo let's you explicitly pass state by reference, so you only trigger a rerender of the children that use the memoized state, when the values used to create that state have actually changed. Unfortunately a lot developers these days have no idea what the difference is between pass by value and pass by reference, so they felt the need to put memoization in a black box ☹️

I would agree that React.memo is often used as a bandaid instead of fixing the actual performance issue which is usually state that is incorrectly being passed by value 😛

Thread Thread
 
leob profile image
leob

Thanks for this "deep dive" ... that's pretty impressive in my book, because I've never mastered an understanding this deep of React - I understand the basics, but for the rest a lot of it is just opaque to me (probably because I never really bothered to invest in learning what goes on "under the hood") ...

In my opinion this goes to show that (a) the React team isn't even explaining the purpose of their features adequately, and (b) this stuff just makes frontend devs focus too much on low level details - while they should ideally be able to focus on building functionality (UX and "business logic") ...

But yeah, being able to understand the nitty gritty of how all of this works is for sure good "job security" !

Thread Thread
 
brense profile image
Rense Bakker

Yes you can definitely blame them for poorly explaining memoization, even in the new docs its still a mess ☹️ but yea... In React 19 it wont matter anymore... Basically useMemo and useCallback will be obsolete from React 19 onwards.

Thread Thread
 
leob profile image
leob

They will? Because of this "compiler"?

Thread Thread
 
brense profile image
Rense Bakker

Yes the new compiler basically wraps every piece of state in useMemo and every callback function in useCallback. It's slightly more intelligent than that, but that's the basic gist.

Collapse
 
nathantaal profile image
Nathan

Well I can of something. Thats that Vue 2 did not support Typescript (/out of the box). But with Vue 3 that issue is gone. But most have learned React know, therefore most jobs require React, therefore people learn it. I prefer Vue over it because the api and docs are better. People that have learned React, have no real reason to learn another thing because the development, the support, and the amount of jobs are plenty.

Collapse
 
jeydotc profile image
Jeysson Guevara

Fact number 1: most devs don't have or want to have a say on what framework to choose, you probably use to work on smaller companies or have decision power, but, most devs, don't, and they work with whatever the company/architect decided to use.

Fact number 2: switching frameworks is difficult, costly or plain impossible, so, whatever got picked at some point, stays forever (for as long as the project exists), React hit first, and has been able to keep it, which makes change unlikely.

Fact number 3: ease to find devs is an important thing to consider when choosing a framework, it is simply easier to find React devs than it is to find Vue devs, and this is a circle that feeds itself, the more companies think (they could be wrong of course) devs are easier to find, the more they'll lean into that technology, and the more the devs think that's what companies look for, the more they get invested into it.

React would have to secrew it up deeply to get surpassed by Vue in the short term, they just hit first, got everyone invested into it and things will just stay that way for now.

Collapse
 
bartsteed profile image
Bart Steed

I couldn't agree more! I find myself using Vue and Nuxt for almost everything I build anymore. It's an absolute delight for developers, can match React is almost everything, and avoids the JSX (unless you elect to be a glutton for punishment).

Collapse
 
chris_keith_b4ab5179445cf profile image
Chris Keith

Have hope. When I was first exploring various front-end tools I spent a lot of time with React, then with Vue, and immediately took to Vue over React. I appreciated that so much wasn't "hidden behind the curtain" in Vue and I felt like I had much more granular control of what I was building. Others moving into FE dev are bound to find the same.

Collapse
 
aloisseckar profile image
Alois Sečkár

This arrogant article alone would be the reason I'd never even start thinking about using React 👎

Collapse
 
brense profile image
Rense Bakker

I guess the sarcasm is wasted on you.

Collapse
 
quanla profile image
Quan Le • Edited

Your lost :D . But agree that the article sucks

Collapse
 
dawood_morriskaundama_6a profile image
Dawood Morris Kaundama

I was laughing throughout the article buddy 😂

Collapse
 
khangnd profile image
Khang

I couldn't even swallow the introductory paragraph to get past that point 🤦‍♂️

Collapse
 
mdledoux profile image
Martin Ledoux

@aloisseckar
Yeah, give it another look - the author of being sarcastic about all the bold claims.

Collapse
 
leob profile image
leob

I think all of these "reasons" are not "the reason" - because most other frameworks (or "libraries" ;-) also have these features (well, except being backed by FB / Meta) ...

I think the main reason is just "timing" - React came on the scene exactly at the right moment, back when Angular 1.x was (by and large) "king of the frontend frameworks" - and then the Angular team announced:

"Here we have a new version for you - now please simply COMPLETELY rewrite your apps from scratch!"

... and then Angular 2.x looked complex, heavy, clunky ... and right at that moment React came on the scene - simple, fast, lightweight ... and the rest is history ;-)

P.S. I am (and have always been) way more of a Vue fan, I think it's vastly superior in all respects - but yeah, again "timing" - Vue arrived just a little bit later (too late), when React was already more or less "entrenched" ...

History and "accident" determines so many of these things!

Collapse
 
berlaga profile image
berlaga

Agree with you completely. Vue is a winner for me!

Collapse
 
designly profile image
Jay @ Designly

I've been a web developer for almost 30 years. I started when JavaScript was in its infancy. I've used every language and framework for developing web applications from JavaScript, to Perl, PHP, Python and now React and TypeScript. I'm perfectly capable of developing an application with nothing but HTML, CSS and JavaScript, but doing so on a large complex project would quickly turn chaotic. I depend on React for the baseline of sanity that it provides.

I would agree that React is very complicated to learn. It does not use a programming paradigm that I am used to in my long career. But once you learn it, you really start to appreciate what it does for you. And they keep improving it with each new iteration (check out React Compiler).

I think it's a positive thing that certain things are left out, like routing, for example. What if your app doesn't need routing? Why do you need to use filesystem routing for a SPA?

Also, you are more than welcome to continue using class components if that floats your boat. Not everyone subscribes to the same coding style / paradigm. I personally think the concept of "clean code" is nonsense, but that's my opinion. I personally prefer kind of a hybrid of functional and limited OO programming. So react functional components and hooks work really well for how I code. That doesn't make either you or me wrong, it's just a preference. Sure one way or the other could have a minor impact on performance, but that's usually a matter of just using way too many dependencies.

So even if React does suck, you offer no alternative. To my mind, the only alternative would be to return to pure HTML and JavaScript. I did try Sveltekit but I feel it does the same thing React does and interjects the same level of "convolution" that you accuse React of doing.

Lastly, I disagree with your conclusion: why React won. The real reason that React won is because it has the largest package ecosystem. There are thousands of published NPM packages designed specifically for React. In fact, I've authored 2 of them. I'm not saying this is a good thing. In fact, I think people depend on way too many packages when taking the time to write a simple helper function would suffice, but I digress.

Collapse
 
lexlohr profile image
Alex Lohr

you offer no alternative

Vue, Svelte, Solid, Marko, ... there are a lot of feasible alternatives.

The real reason that React won is because it has the largest package ecosystem.

He already answered that argument. A whole lot of that "largest ecosystem" is deprecated and unmaintained. The ecosystems of other front end frameworks may be smaller, but are still better quality.

The actual reason why React won is because managers believed that it would allow them to get away with less experienced developers and still being able to scale. Unfortunately, the foot guns included in react counter the scalability promises - especially if you hire less experienced devs and expect them to be architect and dev ops combined.

Collapse
 
designly profile image
Jay @ Designly

The actual reason why React won is because managers believed that it would allow them to get away with less experienced developers and still being able to scale.

What is your source for this?

Thread Thread
 
lexlohr profile image
Alex Lohr

Personal experience.

Collapse
 
abraham_brookes_2cdd664ce profile image
Abraham Brookes

I personally think the concept of "clean code" is nonsense, but that's my opinion

Ah. Opinion discarded

Collapse
 
brense profile image
Rense Bakker

You sound a bit angry. I'm not even sure where to start...

Yes, react is unopinionated. No that's not the reason why people write bad react code. Bad developers write bad code in opinionated frameworks as well. React's component structure actually lends itself really well to apply basic SOLID principles.

The whole framework/library discussion is nonsensical. React is whatever Svelte and Angular and all the other frontend frameworks are. Some of those (like angular) just have a lot more gravy on top, which makes them opinionated and less suited for some use-cases.

Collapse
 
incarnatethegreat profile image
Garry T.

You summed it up.

The difference between frameworks like Vue and libraries like React is the opinion factor. I've worked on Angular projects where people misused it like crazy. It's like using a Miter Saw to hammer in a nail.

The one thing I tell people when building out any kind of solution is less is more. Bad code is bad code.

Collapse
 
nii_yeboah_fccab876b279ae profile image
Nii Yeboah

Do you people realize how much boilerplate and nonsense exists in React. I am very experienced with the framework. I use it everyday at a very high level and I hate it. It's one of the most opinionated frameworks that exists right now ( for instance other frameworks don't require you to wrap everything in useMemo, useCallback etc). When it was first released I would have bought the library angle but not since hooks. It is now very much an opinionated framework. Web Components/vanilla JS imho are and the only truly unopinionated ways to build UIs.

Thread Thread
 
incarnatethegreat profile image
Garry T.

Who said you have to wrap everything in useMemo and use callback? You don't have to, but you can if you want to.

If you have a ton of expensive computations happening on the frontend, then maybe you need to re-think how you're handling and perhaps where, as well. Memorizing data (at least in my experience) is usually warranted when you have a large amount of data that you don't want to re-calculate or apply.

I agree that going pure vanilla is as "unopinionated" as it gets, but that's because it's vanilla. :) React is an abstraction that will fire off max call stacks if you use a hook incorrectly, but it won't stop you from rendering 1000 rows all at once. Vue probably will.

Thread Thread
 
brense profile image
Rense Bakker

Show me in the javascript spec where it describes ngIf. React is as pure as it gets... Its all basic javascript functions... I'm honestly not sure if you're serious or just trolling...

Thread Thread
 
worx profile image
Worx R

I must agree with the previous comment that React is extremely opinionated. Take hooks for example, it might just be plain JS functions, but they behave nothing like you'd expect in vanilla JS. Your hook must be prefixed with "use", and it can only be called in a component or other hook, and it must be side effect free and deterministic, and by the way, that JS code you are writing could be called an arbitrary amount of time by the engine and you have little to no control over that, in fact, in dev mode only we'll call it twice just because but not in the prod build. There's literally an official rules of React documentation describing how you must abide by React's way of doing things, that's as opinionated as it gets.

Collapse
 
drew_e29d5b0152adc2 profile image
Drew Riley

Tldr: people are dumb and Facebook exists.

Collapse
 
dipanjan profile image
Dipanjan Ghosal

Because it came out early and was simpler than Angular which was it's main competitor at that time. For me though Solid is a better version of React, Svelte is elegant too.

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Yeah that would be it. AngularJS was a leader, a first run at something, interesting but a bit crap. React was better than it at the time. There are better things now, but whether that matters is probably down to what you are building and who is using it.

Collapse
 
hichamelbsi profile image
ELABBASSI Hicham • Edited

It's really because of this kind of useless, outdated article, which brings no real argument, which compares things in a childish way and wastes people's time that I've stopped coming to dev.to (sarcasm or not). 99.99% of the articles are of the same level and it's a shame. And yet I've been a React/React-native developer since 2016.

Collapse
 
lexlohr profile image
Alex Lohr

I love the sarcasm, but I'm missing a few gags:

  • #2: I swear, the next revision will claim this is not even a library, but a collection of primitives, but I better shut up about it lest I give them ideas.
  • #3: Remember that fuzzy feeling you had in your tummy when you first learned PHP? That was probably the same diarrhea that birthed this atrocity.
  • #4: All you need to know that it is faster to create and compare objects and then change the DOM than to just change the DOM, right? Doesn't make sense? Don't ask me, I don't get it, either.
  • #6: Also, they got even better when RSC were introduced, because now you cannot possibly know how many times your effects will run. But you shouldn't use effects anyways.
  • Also, by now, Remix or Next are the new react. Still using vanilla? Repent, you Heathen!
Collapse
 
exciteresearch profile image
@exciteresearch • Edited

I am have advocated Angular over React forever, and I love the way this article is written. But also, I did want to throw up a little at inevitably. 😜

Collapse
 
dvalin99 profile image
Domenico Tenace

Try Svelte, believe me.
It's a compiler, not a framework 🤣

Collapse
 
pengeszikra profile image
Peter Vivo • Edited

I am prefer React because the core ide is so simple: action -> state -> view; Whole code can write in a JSX/JS files in simple js code, don't need to learn any template languages.

Try my 65 LOC State handling helper jsdoc-duck

Yes I saw a tons of owerenginered React applications. I am agree keep your package.json as low as possible, my other advice is don' need to setup Tailwind instead can use 1 liner html, this is work with or without any framework:

<script scr="https://cdn.tailwindcss.com"></script>
Enter fullscreen mode Exit fullscreen mode
Collapse
 
jhk_info profile image
JHK infotech

React won the front-end race due to its flexibility, performance, and vast ecosystem. Its component-based architecture allows developers to build reusable UI elements, making code easier to maintain and scale. React's virtual DOM improves rendering efficiency, resulting in faster user experiences. Additionally, the strong backing from Facebook and an active developer community have led to a rich ecosystem of libraries, tools, and continuous updates, solidifying React's dominance in the front-end development landscape. This combination of innovation, support, and scalability helped React outpace its competitors.

Collapse
 
insidewhy profile image
insidewhy

It won when it comes to getting users. But it didn't win at making developers lives easier. There's so many more choices now that are simultaneously easier to understand/use and more powerful. But we're still stuck with this annoying clunky dinosaur because it's just too big to fail.

Collapse
 
abraham_brookes_2cdd664ce profile image
Abraham Brookes

Yours truly,
ChatGPT

Collapse
 
shvahabi profile image
Shahed • Edited

React community being under influence of an advertising company, Meta, is fooled by lots of lies organized by Meta and its dev-rel team. This article name, reflects one of such much believed lies among React practitioners, which you only understand it's a lie if you are not fooled by Meta.

React is not even popular, it's just evangelized by many paid-to-write populist columnists and regretfully believed by those who lack critical thinking skills, those who believe whatever they read. You need some knowledge about higher order functional programming (type and kind level programming) to understand why functional reactive programming, which is practiced by react is a dead end when principled products like ScalaJS thrive.

And it's not only ScalaJS which is way better than React. Actually whoever knows Elm and it's clean TEA pattern understands React is under a heavy technical debt. And by Tyrian this TEA pattern is included in ScalaJS ecosystem too.

I named ScalaJS because it's the ideal product and hence everything should be compared with ScalaJS to have a fair basis. Then we understand YES React may be a good product when compared to WORST products like Angular. Solutions based on Typescript and even vanilla JS which can easily implement Custom Element are way better than React. And I'm not talking about React projects testing and tools like Jest which are more like a nightmare.

React already wasted many open source human resources. I think open source community should sue Meta for waisting it's resources. Advertising technics has nothing to offer against principled computer science design. Stop using Reacts today for a better future.

Collapse
 
elanatframework profile image
elanatframework

WebForms Core technology has entered the game to compete with React.

The new WebForms Core technology was released three months ago and is a serious competitor for Front-End frameworks.

Read more
dev.to/elanatframework/using-webfo...

WebForms Core VS Front-End Development

WebForms Core is a server-dependent technology; usually, client-side scripts or Front-End frameworks request a page, web part, or service from the server using AJAX (or the Fetch method) (it is rare that they do not request from the server). In this section, we describe the advantages of using WebForms Core compared to client-side scripts or Front-End frameworks:

Complexity
Setting up Front-End frameworks can be complex and requires a deep understanding of JavaScript and the framework itself.

In contrast, WebForms Core simplifies web development by allowing developers to focus on server-side interactions and control of HTML elements.

Automated process vs micro scenario
Synchronizing server-side development with Front-End frameworks is challenging because you have to create many server-side APIs for the server to respond to requests from Front-End frameworks.

In WebForms Core, there is no need to create an API, and you provide all the responses in the Controller class or Model class on the server.

Update and maintenance issues
With every update of Front-End frameworks, many problems arise for the compatibility of the current project, and it becomes difficult to maintain the codes.

Meanwhile, WebForms Core is responsible for the compatibility between the WebForms structure on the server side and WebFormsJS on the client side; therefore, the update does not affect the compatibility of the project.

Frequent requests to the server
Creating interactive pages with Front-End frameworks or client-side scripting requires that you make multiple requests to the server to get dynamic data.

However, WebForms Core requests the server only once, and the server sends Action Controls commands, and WebFormsJS executes these commands one after the other.

A different approach than traditional web development
Developing systems with Front-End frameworks requires peripheral tools that are unlike traditional web methods and are hard to learn.

But WebForms Core is an HTML-faithful construct, and based on form tag attributes, it submits data exactly as it would in HTML.

Installing dependencies and complex configuration
The incompatibility of dependencies in different versions and the need for complex configuration make the development of systems with Front-End frameworks challenging.

Meanwhile, to use WebForms Core, just need to add the WebFormsJS script tag to the head part of the HTML page.

Long development
Development with Front-End frameworks requires mastery of JavaScript and internal structures (such as JSX), and the software development process is long.

But development with WebForms Core is done quickly on the server side and there is no need for Front-End development.

Collapse
 
tehmoth profile image
tehmoth

or just use htmx?

Collapse
 
elanatframework profile image
elanatframework

Unfortunately, I did not understand your question. However, WebForms Core has nothing to do with, and is not similar to, HTMX.

Collapse
 
riffani_septianrondonuwu profile image
Riffani Septian Rondonuwu

Image description

He's currently learning Flutter after praising React (Native)

Collapse
 
abhinayg profile image
Abhinay

Chat GPT write a feel good React article.
Chat GPT : Meow Meow Meow

Collapse
 
sopuku profile image
Audrius Aušrotas

well there is Vue.. i was tired of constantly changing next and went to learn Vue. and it is a nice framework.. i really do like it. now i am learning laravel and i love it too :D so maybe i will stick to laravel + livewire or vue.. so no react for me.. :D

Collapse
 
fenroe profile image
Fenroe

So genuinely curious, are people serious when they say that props, state and other basic aspects of developer tools are confusing? If so then the dire state of the job market makes sense, considering that many developers seem to be unqualified for junior roles.

Anyway, nice stab at creative writing OP. Keep trying and I'm sure you'll find your voice.

Collapse
 
worx profile image
Worx R

I think the point is that it shouldn't be confusing at all, like you suggest, but React makes it confusing. In React, passing props is easy but sometimes you need to think about stable references, or using useMemo, or when you should update a state with the updater function vs direct assignment. Or what about context which seems standard, but oh gotta be careful or you'll have too many re-renders, better not use them. Global state management in React is so hard you can't realistically implement it in vanilla React yourself, you must rely on an external library of which there's a dozen, half of which are over engineered.

On the other side, take Vue or Svelte or friends where you create a state with a signal and, that's about it, do whatever you'd like. Pass it as props, store it globally, or in a context, or process it outside the render tree, doesn't matter, it's all good, the framework will likely behave as you'd expect. Which is how it should be.

Collapse
 
jake_horvath_b58f87019ef1 profile image
Jake Horvath

My favorite part about React is avoiding using React as much as possible and sticking primarily to the simple state functionality it has.

Collapse
 
sachindra_ragul profile image
sachin • Edited

I am not a react fan. It makes things complex than necessary if you don't use it well. It got popularized because the examples are simple enough for any high schooler to get started. There are many compile to js languages that work really well with react like clojurescript, rescript, and so on. This strength helps meta because they can use this and combine it with other rendering libraries specific to the hardware like for android, ios, virtual reality devices, web and many more. Because of this reason, meta continues to invest more into it.

React is unlike other libraries which are more performant than react but are more linked to the hardware or ecosystem. Svelte and vue are more performant in web but they can work only with web technologies like html and css. Meta don't need extreme performance but need some thing that is good enough they can extend to any hardware. React perfects fits their usecase. If you are working on a product with a similar usecase react is your ally.

But for anything else there are better alternatives available in the market.

Collapse
 
quincarter profile image
quincarter • Edited

People should really look into lit. Web components using native browser apis are the future. Vite actually has some great starter repos on their site.

These component libraries and frameworks were developed to solve different browser problems back in the day. Now a lot of them don't need to be solved because the browser can handle them natively!

Collapse
 
wormss profile image
WORMSS

Won the race? Funny, it seems to fall over at the start compared to Vue..

Collapse
 
geewhizbang profile image
Geoffrey Swenson

You only read the title, the article including the title is utter sarcasm about how good react is.

Collapse
 
wormss profile image
WORMSS

I read it, you just assumed I didn't.

Collapse
 
rvraaphorst profile image
Ronald van Raaphorst

Well, as a Hipster it good to see how you position React as the "winner" without any sources or reasons. To many developers and companies have invested in other technologies to let them disabandon their preference and jump on the React wagon, so I'll treat this article as clickbait.

Collapse
 
ketan_shukla_c33a05a84469 profile image
Ketan Shukla

I completely agree with each point made in this article, considering it isn't sarcasm. And if it was indeed a sarcasm, then I think author needs a serious retrospect of his journey as a frontend developer.

Collapse
 
orisa profile image
orisa

As of 2024 and beyond, Angular is a better option for those who need to build well engineered web apps. The only reason anyone would chose React would be because of React Native.

Collapse
 
tyler_katz_c18747f596ab5c profile image
Tyler Katz

Agreed. Angular all the way. React Native is ok but there's also Capacitor which works with any framework. Flutter is cool too I'm just not into it. Basically Google.

Collapse
 
matheusrufca profile image
Matheus Rufca

I see many comments in favor of Vue, and it’s funny. Years and years go by, and programmers keep loving to advocate for their favorite technology.

The author wrote a good article full of ironies, listing reasons why React is what it is, and not necessarily good, certainly far from worshipping React.

And then comes a bunch of people saying that Vue has all of this, and that it’s even better, and that it’s all a great injustice from programmers who prefer React. And they are so committed to defending their beloved tech that they ignore item 1, where normally in a list, the first item has priority. They complain as if the choice of technologies in a project is always a personal motivation, ‘why didn’t the programmer who started this project choose Vue?’

Going back to the first item, who maintains Vue? How many of those who commented here contribute to Vue? And how many can guarantee that the volunteers will keep contributing?

Project decisions are not necessarily made to please hipster programmers who seem unable to think beyond their screen. There are technical issues, there are scalability issues. If tomorrow a new framework comes out, better than Vue, all the Vue advocates will be loving their new JavaScript toy, which is easier to use and 5ms faster to render a Hello World. But what about the company that decided to use Vue and now needs to hire specialized labor?

These are just two points that are not too difficult to understand as to why (which is very different from supporting) React has been used on a large scale.

Collapse
 
nim_118 profile image
Curious Developer

Awesome article.
So react is react today only because it's made and managed by big players and its unnecessary complexity ?

Maybe it's also because there was a lack of batter options when React came ?

Collapse
 
n13 profile image
Nik

Use Flutter and forget about React Native.

Like many frameworks and helpers, React Native works amazing and your developer will get a demo up and running in half a day of work, wow! Then you spend months, getting ever closer to shipping, when, at 90% an impossible thing arises; something that just can't be done in React Native.

This is when the framework goes from saving time to wasting your time as you spend all your days working on workarounds for the limitations.

In the past, also, RN would update the version and then everything would break - I imagine / hope they don't do that anymore, it was crazy. "Move fast and break things" indeed.

Flutter is better than RN in every conceivable way - it's equivalent in fast prototyping, but never runs into limitations; it just works. It's the best thought-out mobile development platform there is, better than the native iOS / Android ones, and vastly better than react native.

As a bonus you get a 90% mobile app look and feel, which is good enough that 90% of people will never notice it's not a native app. React Native always looks and feels like a web app - probably because it is at its core, just with native widget rendering.

The other 10% - myself included - will notice it's not as smooth as a native iOS app but it's good enough, and it's just so much easier and faster to write it's worth it.

Collapse
 
lppogrr profile image
Leroy

I think mostly it's because people have gotten so used to j query that react is just a natural extension of that way of working, personally hate j query and by extension, react. But it's not very hard to see the motivations

Collapse
 
greenersoft profile image
GreenerSoft

I love sheep!

Collapse
 
hanoada profile image
Adam

Astro is pretty cool, too. Their philosophy seems to be something like "can't we all just get along?" or the "why not both?" meme.
Image description

That way you can be equally confused by all of your components which is good, clean fun.

Collapse
 
ingosteinke profile image
Ingo Steinke, web developer • Edited

Don't judge a text by its headline! @pranta, can you please write another post about why AI is so great? Thanks for your post, it's much better than any Meme Monday so far!

Collapse
 
ahmaddeel profile image
AhmadDeel

"but let’s be honest—you don’t have a choice."
Well let's be honest, I worked with angular 2 and react, react was and is better to start and bootstrap the code of application at the start, but the state management and ui update loops in react are slowing you down until the app is too large that it's performance and maintenance is almost identical with angular.
Sure for small apps like hello world, calculator, etc. It's the best; But for large and scalable app I would surely not choose it

Collapse
 
korybecker profile image
kory becker

Absolutely no answer to the question in the title. I thought I would be reading about why the conditions were especially ripe for React to gain market share over other frameworks, maybe about the demands of developers over the past decade and why the pros of React satisfied those demands. This is just a hard to read overview of React's most basic functionality.

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

They say reading comprehension needs to be taught in schools. Reading many of these comments I have no idea why.

Collapse
 
selimkoc profile image
Selim Koç

ReactJS is only faster than Angular which is at speed level of a turtle.

Try Tay and stay ahead of the curve.

If you have a senior developer on your team, go with Tay and never look back. You will be better at JavaScript and programming thanks to TypeScript.

Collapse
 
shubham_tripathi_f852bb5c profile image
Shubham Tripathi
  1. Where is my updated value? What, I gotta fetch it inside a hook? Okay.
  2. Where is my dependency Injection? What, I have to put a tree of providers like some barbarian writing code? Okay
  3. Why is my settimeout not working?
  4. F U Facebook
Collapse
 
abraham_brookes_2cdd664ce profile image
Abraham Brookes

React is utter trash there's no other way to say it. Even though Vue is far superior it's not even in comparison - React is trash in its own right. It is to javascript what wordpress is to php. When facebook released React they tried to dominate the sector by pumping money into advertising and conference sessions. So you want to make an app but you've never programmed before? Perfect! You're so clueless you'll never pick up on how backwards our approach is and you won't question our obviously poor system designs. That was their target market and the upshot is a community of noobs sharing un maintainable, broken libraries with no support. And this isn't just a hot air opinion. Check this out:
React routinely releases core updates that ship breaking bugs.
The state management library Redux needs multiple third party packages to get around known limitations.
The implementation of jsx components precludes a lot of base language features particularly in conditionally rendering component parts.
There is no unit testing library that is fully compatible with Reacts single file components due to the update cycle causing render cascades.
Having used React, React-Native, Angular and Vue professionally, React is the laughing stock of the lot.
Fanboying for React is a sure-fire way to tell everyone in the room you have no idea what you are talking about. I will never take another job on a React project and I will never hire a developer that raves about React.

Collapse
 
shmuel613 profile image
shmuel613

I guess a lot of y'all don't remember, but React coincided with the horrific introduction and backstabbing of Google releasing Angular, which was infinitely more complicated than AngularJs and had zero backwards compatibility. A lot of devs jumped to React, which had licensing issues at the time. (I still don't trust Meta)
The bottom line is that React is created and maintained for Meta. If it's good for Meta, it will be in React. Contrast that with libraries like Vue that are developed for the community.
It's a shame that most frontend codebases are "stuck" with React. There are a few reasons for this:
1) managers are idiots and don't want to update or change things that "work"
2) developers are lazy and don't want to rewrite code that "works", no matter how hard it is to maintain or extend.
3) there are more React jobs on the market than other frontend frameworks.

Collapse
 
tony_ohagan_4910311787664 profile image
Tony OHagan • Edited

Every time I contemplate using React I look at the coding patterns and think ... this is a technological step backwards. It would just frustrate me and waste my time to code this way that's more error prone and we now know also produces a slower rendering engine.

Vue 3 with "script setup" and TypeScript is so much cleaner, clearer and simpler to read and maintain and thus more productive to use than the React hooks mess. Vue is also much easier to learn because its cleaner design is conceptually simpler. I've looked at the code of many React projects and estimated the volume of coding required to do the same in Vue and it's a no brainer - just avoid React!

Vue has deep knowledge of state dependencies down to each part of a reactive state object which allows Vue's optimizing compiler to outperform React by minimizing re-rendering at the micro level. In React, you're forced to declare state dependencies while Vue safely deduces them removing a major source of bugs. It can also do dynamic state dependency analysis (needs an article to explain) that this lifts the optimization game another level.

Vue 3's Pinia store also kills it again with a much cleaner and simpler shared state solution all based on Vue's smarter reactive objects, variables and computed functions. The fact that React has so many "store" solutions tells me no one is happy. In Vue 3, there's just Pinia now as its simpler minimalist design "just works".

Do you know of any React UI component library with builders to create a single adaptive app that can be any of: Web/SPA, PWA, SSR, SSR/PWA, Desktop installable, a Browser extension and most importantly support iOS and Android and Web/PWA Mobile/Tablet devices ... all in one kit? I've found a nice SDK packed full of 70 very mature and feature rich components (Don't just count components, look at the feature details of each). The authors of this library have designed them based on input from an open source community for over a decade now, so they cover almost everything you'd ever dream of doing and stuff you'd didn't know you needed until your client asks for it. Why waste your time poking around with shacnd or similar when its already done, optimized, had years of testing and is ready for production use. All UI widgets in this kit support mobile touch events and mobile specific rendering avoiding the need to build a React native app. I wonder how much time React projects have wasted on this duplication. With this kit you can avoid this huge cost.

And the price? It's fully and completely FREE. No not free for 30 days; not free tier and pro tier just fully free with no ads - relying on sponsorship only. This kit has heaps of other tools and utility functions and many other extras packed in. When combined with their builders, this means I can almost totally avoid dependency/upgrade hell as Quasar team maintain and test dependencies for me. I don't know of better documentation with nice working code samples for almost every UI component feature - a major time saver! No you don't need Nuxt either - That's just another set of dependencies to avoid. Yes, Quasar covers you for server side rendering (SSR) too!

Escape React and enjoy Vue 3. Visit Quasar.dev.

I'm just a happy user. I have no vested interests but I do sponsor this worthy open source project.

Collapse
 
thisjson profile image
Jay H

I'll never understand this developer Stockholm syndrome. You either hate it or you don't.

Collapse
 
pratik_thapa_c0e2e7895da8 profile image
pratik thapa

This article man a lot of arrogance react has won nothing it is just popular.popular doesn't mean better period

Collapse
 
eliel_douna_d68b80335fad8 profile image
eliel Douna

Loved the article 💯

Collapse
 
godwinkachi profile image
Godwin 'Kachi

Honestly, as a newbie struggling with the decision to go for this or that, this post instead of giving clarity plunges one into more confusion 😀

Collapse
 
lincolixavier profile image
Lincoli Xavier

VueJs looking: 😂 poor guy

Collapse
 
annavi11arrea1 profile image
Anna Villarreal

This was a very entertaining read. I appreciate it. I did smile a few times.

Collapse
 
cbarsony profile image
cbarsony

This is the stupidest article on React ever. Every single line is bullshit.

Collapse
 
franklivania profile image
Chibuzo Franklin Odigbo

You will always come back!
It is innevitable

Collapse
 
chandan_e69c011b258e09242 profile image
Chandan

Very informative Share 👌🏻👍🏻

Collapse
 
steveblue profile image
Stephen Belovarich

Web standards won the frontend race because we all have to use them, they will remain baked into the web platform, are accessible by default, and are easy to learn.

Collapse
 
ricardogesteves profile image
Ricardo Esteves

What an awesome article @pranta let me tell you, really enjoyed reading it.

Collapse
 
stiweb profile image
Slavko

It's not russian doll, it's Japan

Collapse
 
jk_245326cf414ce17a0d2357 profile image
JK

This article 👌

Collapse
 
jesusantguerrero profile image
Jesus Guerrero

Reasons react devs would say:

  • its cool
  • x startup use it
  • it pure js
  • its a library

All lies 😂

Collapse
 
michael_bushe_20d4dc35ed0 profile image
Michael Bushe

This is why I use Flutter. :)

Collapse
 
avdev profile image
Layade Victor

I love how funny and informative your write-up is. I wrote an introductory piece like this a while back but for beginners in react. dev.to/avdev/reactjs-the-good-the-...

Collapse
 
subu_hunter profile image
subu hunter

Looks like we have a winner by looking at comments section.

Vue 1 - React 0

Collapse
 
anotherguy profile image
Igor Soloydenko

Haters gonna hate...

Collapse
 
mindaslab profile image
Karthikeyan A K

Looks like the Author hasn't heard about HTMX

Collapse
 
martinbaun profile image
Martin Baun

React found a foothold in the corporate world, plain and simple.

Collapse
 
ashwinperti profile image
Ashwin Perti

Great 👍🏻

Collapse
 
thezombi profile image
Zombi

Developers programming in React are like people commenting on Facebook.

Collapse
 
rohitsinghpanwar profile image
Rohit Singh Panwar

This article was so fun to read didn't bore me at all.

Collapse
 
natedhaliwal profile image
NateDhaliwal

I'm not sure if this guide is to praise or to mock React (I get the impression of praise), but I think it's time I take a look at React or Angular.
Been using plain JS, I guess I am hipster 😅

Collapse
 
cmohanc profile image
cmohanc

Loved it.
I had a bite of the cotton candy and lost my teeth.

Collapse
 
i0712326 profile image
Leo

I don't think so. React is way to complex and high strive learning curve. It take the first place because it's white guys created product no less and no more than that!

Collapse
 
elyasi2142977 profile image
H.elyasi

all benchmarks tell you, vue won...
See reality...🤔😏

Collapse
 
hamilton_jude_4a4677dc783 profile image
Hamilton Jude

Nice Article. React is 🔥🔥❤️

Collapse
 
mahendranv profile image
Mahendran

I'm not from the front-end background. Can someone explain whether he praised the react library (I understand this 100%) or shooting it down?

Collapse
 
shubham_tripathi_f852bb5c profile image
Shubham Tripathi

he destroyed it with truth. React is a facebook propoganda to make their investors happy.

Collapse
 
solvap profile image
Andreas

Noob here. Is there a way to add react on a WordPress website from the website's backend?

Collapse
 
ozzythegiant profile image
Oziel Perez

Sarcasm or not, this is a terrible take and no one should ever consider doing this

Collapse
 
solvap profile image
Andreas

Why is that?

Collapse
 
drew_e29d5b0152adc2 profile image
Drew Riley

Sarcasm is hard to read in text form, but I truly hope I sensed it here.

Collapse
 
ozzythegiant profile image
Oziel Perez

L article. Death to React!

Collapse
 
polterguy profile image
Thomas Hansen

They might have won the frontend race, but frontends will be obsolete in the future.

Collapse
 
dimitri_fromathens_2346a profile image
Dimitri from Athens

Well spoken. Unfortunately, most front end devs do not know much about engineering and now we are stuck with this bad technology.

Collapse
 
tom_white_ec9c64700e677a9 profile image
Tom White

I've been unconsciously waiting for one of these reverse click baits on React. Nice to highlight the siloed belief that the complexity React devs experience at scale makes them clever.

Collapse
 
moshe_klienblat_444cd6bdd profile image
Moshe Klienblat

Stop crying and start learning, you can say about anything on each program language, so if you are not filling you have a grip it's ok, but don't blame the programm language

Collapse
 
tanyamushonga profile image
Tanyaradzwa T Mushonga

Informative

Collapse
 
tiago_dherbe_07917cb3b06 profile image
Tiago D'Herbe

Simply put, what a great description of react. Kudos for the article and writing style.
Thanks

Collapse
 
geewhizbang profile image
Geoffrey Swenson

Vue

Collapse
 
yohami_zerpa_543e37900351 profile image
Yohami Zerpa

React is horrible, moved to Flutter a while ago

Collapse
 
elsyng profile image
Ellis • Edited

Don't like it? Don't use it.
Jeez.

Collapse
 
ruiiz_dev profile image
Esteban Jimenez Ruiz

Added to that, every day more tools based on react come out

Collapse
 
benjamin_meirkhalifa_89b profile image
Benjamin Meir Khalifa

As a more UI developer, I see my co workers loving React also mostly because everything is in JS. CSS especially. They can't bear CSS. I find it... Horrible 😂. I much prefer Vue's approach.