"Friends don't let friends use React" were the first words in this post.
🚨 Friends don’t let friends use React. 🚨
We all know that every line of code you add today is just a future liability waiting to haunt you. Technical debt is real, and once you’re in deep, there’s no easy way out.
Now, imagine your friend maxing out their credit cards on overpriced junk, living that "buy now, cry later" lifestyle. Would you just stand by and let it happen? Of course not! You’d step in, shake them by the shoulders, and say, “Think about your future!”
So why is it any different when you see a fellow developer swiping their React credit card, installing package after package, drinking the hook-flavored Kool-Aid, and convincing themselves that yet another state management library is the answer to all their problems?
It starts small, just a little JSX here, a sprinkle of useEffect there. Then, before they know it, they’re lost in dependency hell, buried under 4,187 npm packages that all mysteriously break after a minor version update.
Will you step in? Will you be the friend who saves them from themselves? Or will you let them spiral into an endless cycle of over-engineered component hierarchies?
React may be seductive, but it’s a one-way ticket to regret. Intervention starts with you.
⚛️ React. Not even once.
It didn't catch me off-guard, given this was yet another blanket statement toward a library (in this case, React).
I don't involve myself in heated conversations, yet I was compelled to reply to the post with:
A better argument here would be, "use a framework, not a library" -- it never has anything to do with React and everything to do with not having opinion. When there is only opinion, is there no one right way to do something.
To my surprise, my reply had a follow-up from another naysayer:
Michael Hertzberg: Such horse sh*t! All subjective opinions are validated by objective reality in the end. They don’t exist in isolation. Reality tells us which opinions yielded the most productivity and the simplest code. Definitely not React. At every React codebase I joined over the years, it was absolutely horrendous compared to other technology codebases. Opinions CAN BE wrong when they miss the target of doing client work with the most productivity and maintainability and at the lowest cost and time to deliver. I currently use a technology that can implement React Frontend work in half the time, easily, with the code being much more readable by everyone. It’s not even close. React sucks. All smart software engineers know that already.
Without any quick judgment on my part given their emotional response, I was eager to give an emotional response; however, I took a moment to address everything, instead of throwing a bunch of unproductive streams of consciousness. Here was my response:
[Redacted], that's a strong take. but, you're presenting your own subjective experience as "objective reality," which is exactly what you're criticizing.
React is just a UI library. It doesn't enforce architecture or patterns, which is why you see such wildly different React codebases; my point about opinions vs. frameworks.
The "horrendous" codebases you encountered weren't predetermined by React itself - they were the result of architectural choices, team dynamics, and project constraints. Maybe you worked on "horrendous" teams.
You mention using a technology that's 2x more productive for you -- that's awesome! Different tools work better for different people and projects. But declaring "all smart engineers know React sucks" doesn't reflect reality, it just dismisses the valid experiences of countless skilled devs who find value in it.
My original comment wasn't defending React, it was pointing out that libraries without opinions naturally lead to more diverse (and sometimes messy) implementations. That's a tradeoff, not a failure.
React is fine for smart people if they want to.
What do you think?
The "crime" of React is that it has been made an equation between "modern web development" and React. So everyone jumps the train, without deeper knowledge and understanding, and starts creating messy implementations that are probably pain to maintain.
I don't like React. I am team Vue. I prefer its Composition API to othet forms of reactivity and its templates over cryptic JSX. And I think there is no real reason for prefering React unless "I have a special case and there is no utility library for the other technology yet".
On the other hand - I started using Vue utterly wrong and my first big project is a mess thanks to its poor design. It works, but it is complicated and nearly impossible to change now. So I can imagine others do the same in React and creating reasons for hate.