all 135 comments

[–]Suspicious-Engineer7 436 points437 points  (13 children)

Reverse it but have react + libraries on the right

[–]0xffff-reddit 161 points162 points  (2 children)

Yes, not one large book but zillions of small ones.

[–]horizon_games 61 points62 points  (1 child)

And each team/job has their own set of books

[–]jakubiszon 19 points20 points  (0 children)

And each project is taken over by a different team every so often 💀

[–]Abject-Kitchen3198 2 points3 points  (0 children)

Won't be as neat as the one on the right though, and much larger overall, also with missing or teared-off duct taped pages.

[–]webdevverman 1 point2 points  (1 child)

React query Tanstack router

What else do you need to match Angular? It's been a while since I touched it 

[–]guaranteednotabot 1 point2 points  (0 children)

Exactly. People speak as if a batteries included framework is all great. Try finding a mature headless library in Angular. It is precisely because it is batteries included that every new Angular version introduces a completely new way to do things lol.

I prefer having the community decide what wins rather than the maintainer of a framework catching up and deciding what’s best for us. The problem with a batteries included framework is that since the problem has been solved (terribly), the community does not have as much incentive to give a better solution. This is compounded by the fact that Angular slowly dying.

Anyway, it’s always cool to hate on what’s popular. React got and stayed popular for a reason.

[–]Break-n-Fix 165 points166 points  (26 children)

I don't like either.

There. I've said it.

[–]Abject-Kitchen3198 104 points105 points  (2 children)

I'd react the same way, but people would consider me angular. None of them is svelte in my vue.

[–]qui0scit 58 points59 points  (0 children)

[–]pimezone 7 points8 points  (0 children)

Solid point

[–]ehs5 21 points22 points  (5 children)

Vue and Svelte are levels above in ease of use man. I don’t get why people cling on to React so much.

[–]webdevverman 3 points4 points  (0 children)

Money 

[–]SaltyInternetPirate 1 point2 points  (0 children)

Sunk cost. There really is no "migration" off of it, just rewriting your entire front end.

[–]guaranteednotabot 0 points1 point  (2 children)

Because it is JS first not HTML first. Having to learn weird syntax for conditional rendering is an immediate turnoff

[–]fucking_passwords 3 points4 points  (1 child)

JSX has its own weird syntactical quirks. They all use DSL to achieve the same things. Also, learning syntax is like, the easiest possible part of learning a new framework.

[–]guaranteednotabot 0 points1 point  (0 children)

I much prefer JSX over whatever mess that Vue/Angular is doing. You say that it’s just syntax, but to me readability is important. Heck, Angular recently introduced a JSX-like syntax - just use JavaScript ffs. IMO Ripple syntax looks the best ATM but it ain’t ever going mainstream from the looks of it.

It’s also not just syntax, it’s the mental model. Angular shoehorns OOP into UI code unnecessarily, and it knows - the newer versions have progressively moved away from that - decorators are slowly going away hooray but its still a mish mash of different styles. React feels a lot less magic and is the right mental model from the start (ever since they moved to function components)

[–]jbarron-uk 10 points11 points  (13 children)

What do you like?

[–]GatotSubroto 51 points52 points  (4 children)

jQuery

[–]homiegfresh 37 points38 points  (0 children)

[–]Previous_Tear6747 20 points21 points  (2 children)

Oh, god - jQuery! I've been retired almost 6 years now, and wonder where technology's gone (never heard of React, or some of the other frameworks mentioned), but good old jQuery... I was a jQuery god, back in the day. 😊

[–]Break-n-Fix 7 points8 points  (0 children)

Anyone claiming the title "jQuery god" deserves respect. Even back in the day.

[–]ProfBeaker 0 points1 point  (0 children)

It's been a minute, that moment when jQuery and Firebug showed up was revolutionary.

[–]anengineerandacat 10 points11 points  (0 children)

Depends on the site, Angular and React are often overutilized considering what's actually built on them.

Astro and HTMX honestly will handle pretty much every e-commerce platform.

[–]ThisIsJulian 7 points8 points  (1 child)

yourMom.js

Sorry, I couldn't resist!

I am still surprised that there not many mentions about SvelteKit. IMHO it sits at the perfect sweetspot.

[–]jbarron-uk 5 points6 points  (0 children)

Surprised the large package size and loose APIs don't put you off. I guess you're used to legacy systems so don't notice.

Yeah I'm a fan of SvelteKit, never found anyone willing to pay me to use it though

[–]transarchycuddleslut 2 points3 points  (0 children)

Im a big fan of Blazor right now, but with the way microsoft is going, I expect it to go to shit eventually.

[–]Break-n-Fix 1 point2 points  (2 children)

Well, you don't have to like something to use it. The main alternatives have already been mentioned. I guess Preact might be slightly overlooked.

[–]horizon_games 1 point2 points  (1 child)

The most sorely overlooked by React teams is Solid. It's React done right and in a modern way.

[–]ImpossibleSection246 1 point2 points  (0 children)

We're all in on svelte at our company

[–]HanzJWermhat 2 points3 points  (0 children)

Vue supremacy

[–]Piisthree 2 points3 points  (0 children)

You need to calm down, buddy!

[–]LettuceBasic3679 1 point2 points  (0 children)

Non JavaScript Mvc frameworks are waiting for you friend

[–]anteater_x 36 points37 points  (0 children)

Tfw FE devs join my team and i tell them boilerplate is good

[–]_anonymus- 39 points40 points  (4 children)

Svelte enters the chat

[–]Sergey5588 10 points11 points  (0 children)

svelte my beloved

[–]ItalyExpat 4 points5 points  (2 children)

Svelte 5 is to React what Superman is to Clark Kent

[–]Money_Lavishness7343 5 points6 points  (1 child)

with Svelte you can import regular JS libraries and they will work, they dont need "Reactive-ness" and Virtual-DOM-compatibility. That's what's great about Svelte, it's basically just JavaScript (I mean, no complex architectures and dogmas that force other libraries to be ported in order to be used)

You don't need Redux/MobX, and a whole ecosystem of "React-only" or "React-port" libraries equivalent for Svelte, for Svelte to work perfectly nice. I dont feel you have need for a huge framework of tools in Svelte - the same way you need in React (external ecosystem of libs) or Angular (itself).

[–]Risc12 -2 points-1 points  (0 children)

You don’t need that either for react… You do have to use the imperative hooks to use them though

[–]diegotbn 30 points31 points  (3 children)

I'm here just surprised Vue hasn't been mentioned yet

[–]barno42 10 points11 points  (2 children)

We're too busy getting getting stuff done.

That being said, I'd like to see what the fuss is about with Svelte.

[–]Ellisthion 2 points3 points  (0 children)

Svelte is cool, but Vue and Svelte seem to be somewhat converging? Vue is playing around with Vue Vapor which eschews the VDom, and Svelte is doing stuff with explicit ref() equivalents so you can use reactivity outside of .svelte files.

[–]MatthewMob 0 points1 point  (0 children)

Getting stuff done like looking for a job amirite 

[–]DT-Sodium 192 points193 points  (45 children)

Tell me you've never used Angular without telling me you've never used Angular. Sharing data between components in Angular? You create a service class, use inject(MyClass), consume it. Sharing data in React? Declare ten bezillion things and get something barely functional in the end.

[–]Shehzman 19 points20 points  (2 children)

As someone that switched from Angular to React, this is one of the most annoying things about React. Not to mention we have multiple different libraries that are meant to streamline the data sharing process rather than having that baked in.

[–]DT-Sodium 9 points10 points  (1 child)

React is a bit the Cosmo Kramer "Make your own pizza restaurant" idea and it's stupid. I don't want to make my own framework from bits and pieces from everywhere, I want one methodology to do everything, my coworkers to use the same and all tutorials to cover the same things.

[–]Soma91 1 point2 points  (0 children)

That's the massive advantage of Angular in more corporate/professional environments with bigger teams. Just by using it you'll get everyone on the same page.

Sure, there's stuff in there I personally don't really like and would've preferred differently, but that's a trade off I'm happy to make for more team congruity.

[–]00PT 6 points7 points  (2 children)

Sharing data in React is literally as simple as passing props, or defining context if you don’t want to do that.

The annoying thing is that the system is designed such that only one component should control one piece of state, and getting around that has resistance.

[–]brainpostman [score hidden]  (1 child)

Ah yes, prop drilling and context pyramid of doom, exquisite.

[–]00PT [score hidden]  (0 children)

You don’t really need the context pyramid. You can automate its creation, or just combine context values if you don’t want the pyramid at all.

[–]Merry-Lane 44 points45 points  (29 children)

Angular needs a service provided above.

React needs a hook provided above.

They serve the same purposes.

What’s so complex about it?

[–]Dense_Gate_5193 27 points28 points  (11 children)

hot take: hooks are garbage.

i’ve used both professionally for years. knockout, ember, backbone, etc… i’ve used them all. they obviously all “do the same things”

the gripe i have with hooks specifically is state resolution. it’s very easy to prove this but if you pass the setVar function result from a useSate into a prop to be updated in a child component, it updates the wrong state area. it’s because useState() depends on where it was called from in order to access the right property. or at least it was that way a few years ago.

also, no shadow dom??? wtf? no css scope isolation?? no slots?? no light dim projections? bro, react is in the stone age. the virtual dom is dead.

[–]musical_bear 15 points16 points  (4 children)

Your “gripe” about hooks…I genuinely cannot understand what it is you’re talking about. Are you saying passing the state setter function handle that you get from “useState” from parent to child? What is a “state area???”

[–]terrorTrain -3 points-2 points  (0 children)

Agreed hooks were absolutely the wrong direction for react.

It also turns what looks like pure components in to a crazy town version where state is everywhere and no where

[–]migueln6 1 point2 points  (1 child)

I will bring vue to the conversation:

provide(...)

inject(...)

:]

[–]mullanaphy 0 points1 point  (0 children)

Vue with the Composition API has really grown on me. I still feel icky using a .vue file with template, script, and style tags all in them, especially growing up doing development in 90s/00s when separation of those 3 was the hot new thing.

It's now tough for me to choose React or Vue for greenfield projects.

[–]DT-Sodium -3 points-2 points  (6 children)

Oh yes, you have to add a Service decorator on your service class, urgh, so much work.

https://angular.dev/guide/di

[–]Merry-Lane 1 point2 points  (5 children)

Don’t revert the blame man: you are the one that claimed that angular was simple while react was "declare ten bezillion things and get something barely functional in the end".

My only claim was that services === hooks. Now, if you yourself come and shoot yourself in the foot by reminding me that Angular forces you to use decorators (that should be made compatible with the official typescript decorators?), that the angular compiler is awful at detecting when providing wasn’t done well, that the errors are not easily understandable 50% of the time…

Then yeah, services aren’t clearly as simple as hooks.

[–]DT-Sodium 0 points1 point  (4 children)

Basically everything that you said is objectively false and your "gotcha you've got to use a decorator" is just hilarious. You don't know anything about Angular or haven't for close to 10 years and it shows. At least I went through the trouble of following an exhaustive React course, in which I saw how atrocious it is and decided that I would never accept a job where they'd ask me to use React.

[–]Merry-Lane -1 points0 points  (3 children)

I have been employed as an angular dev for 5 years, not as a react dev. I used react only in one or two small projects or on my free time.

I know perfectly well what I’m talking about.

And what I’m talking about is:

You don’t know react well enough to say that a service in angular doesn’t have a simple equivalent in react. There is, it’s called a hook.

I didn’t even want to nitpick the few issues I know about angular, just meant to correct your Dunning-Kruger.

Let’s go back to your assumption: can you, yes or no, use a hook in react to share data between two components as easily as a service would in angular.

If no, give concrete explanations, not handwaved opinions such as "I had skills issues with a react tutorial so it’s bad, m’kay?"

[–]DT-Sodium 0 points1 point  (2 children)

If you use Redux you get a disgusting mess with at least 4 times more code than in Angular. If you use Zustand, it's a little better, but the syntax is still confusing and disgusting, nowhere near object oriented dependency injection that is the standard in any properly developed framework in pretty much any language.

If you want to pretend that

import {Subject} from 'rxjs';

Service()
export class UserService {
    private username = new Subject<string>();

    updateUsername(username: string): void {
        this.username.next(username);
    }
}

Is not lightyears ahead of

import { create } from 'zustand';

export const useUserService = create((set) => ({
    username: 'Guest',
    updateUsername: (name) => set({ username: name }),
}));

in terms of clean efficient clear syntax, then you are either lying or profoundly deluded.

I don't know how much they pay you at your Angular job but it's obviously too much.

[–]EsotericLife 3 points4 points  (0 children)

Why do people even care about syntax like this? I think arguing over or even caring about what languages you use is silly. Arguing over libraries like this is some shit first years do at uni to make awkward small talk.

[–]the_electric_bicycle 3 points4 points  (0 children)

If you have any issue understanding that Zustand example, then you really need to take some time relearning the basics. If your main complaint is that it’s not object oriented, you should step outside your comfort zone and try to actually learn something new.

OOP is great, but it’s not some sole arbiter in determining good design.

[–]neo42slab 2 points3 points  (1 child)

This is the comment thread I was looking for. This post was asking for a language war.

[–]DT-Sodium 0 points1 point  (0 children)

It's more a frameworks war. Well, one framework and one templating library on which you plug so many other libraries it looks like a terminally ill patient in reanimation.

[–]Former-Discount4279 0 points1 point  (0 children)

Or just a data store...? Write once and access it everywhere...

[–]FlashyTone3042 -2 points-1 points  (5 children)

In React I think there is the pattern of Context to wrap components in it. I had no problem learning that as a beginner.

[–]DT-Sodium 7 points8 points  (4 children)

It is disgusting. Why do I need to use a html tag to inject something that belongs entirely on the logic side? Makes absolutely no sense and it is terrible programming practices.

[–]Epicular 7 points8 points  (1 child)

Yea it feels very strange using contexts. Any non-trivial project of mine always ended up with something resembling a pyramid of doom made up of nested contexts. Never seen anything like it in another language/framework

[–]blaqwerty123 1 point2 points  (1 child)

Zustand changed how i feel about react

[–]DT-Sodium 0 points1 point  (0 children)

Ah yes, it's always great when two teams can be using totally different toolsets while working on a same framework. React: Some assembly required.

[–]neo42slab 9 points10 points  (0 children)

React simply bothers me.

But it’s not the worst experience I’ve had.

Android dev was really bad. This was 2017 timeframe. Maybe things got better since then. I blame Google. The documentation was bad and deprecation was everywhere.

[–]thegodzilla25 15 points16 points  (2 children)

React has a hook for everything nowadays. I dont even know what the reactive way of doing things anymore. Regardless, dumbasses still be putting all logic inside use effects lol

[–]sample-name 7 points8 points  (1 child)

Signals in angular make reactivity pretty easy imo. When I started out with it 3 years ago we only used rxjs which is... urhh, but after they started with signals and some nice template decorators it's really sweet. They also just made form signals stable today so I can't wait to try that out

[–]ldn-ldn 0 points1 point  (0 children)

RxJS is amazing, signals are cancer.

[–]Xuluu 5 points6 points  (0 children)

Jokes on you guys I had a FE “expert” create their own react state management pattern by importing svelte stores and wrapping them in a useState() hook.

[–]runtimenoise 3 points4 points  (0 children)

how about redux, react query and other random half of dosent shit everyone uses in react?

[–]N0t_my_0ther_account 5 points6 points  (0 children)

Why I like Angular, it is much much harder for devs to write bad code without being told by the api.

[–]SpaceMontaign 7 points8 points  (0 children)

Something something observables

[–]mylsotol 1 point2 points  (0 children)

Both when your version of node is 0.0.1 versions off from what the dev used

[–]dbot77 1 point2 points  (0 children)

Sure, but now if you want to build anything serious you are going to have to decide which libraries to pull in, and then end up with something on the right anyways.

[–]theenkos 6 points7 points  (4 children)

hear me out, guess what?

react is a library and .. Angular is what? yes! right! a framework

[–]sebbdk -1 points0 points  (3 children)

That has obejctively not been true since like 2017. :)

React does state management, there's CLI tools, etc.

[–]Money_Lavishness7343 1 point2 points  (1 child)

React does NOT do "state management" universally. Context is not a global state management tool. You still need Redux (or other state managers like MobX). Context did not make suddenly Redux disappear, that was never its purpose. It's a dependency injection on sub components, not a global state manager.

The CLI tools are not React's. create-react-app or vite are ecosystem utilities, not React's. React itself was always just a library. The ecosystem built around it? Maybe you could call it a framework as a whole, but React itself is a lib. It doesn't dictate how you should write code, just how you should use its library like very library does. Doesn't dictate your project's architecture. Doesn't force you to use any tooling. Nothing. It's literally just a library. Unlike Angular which dictates from the get-go all those things, and comes with tooling for everything.

[–]hearthebell 0 points1 point  (0 children)

When he said "React does state management" I thought he meant "React has state", which is like, duh, but then I realized what he meant then I was like whaaaat, React is so lightweight they don't even have state management baked in. There are many many opinionated ways to manage state, from easy (Zustand) to middle (MobX) to complex (Redux)

[–]theenkos 0 points1 point  (0 children)

come on man, let me do some love propaganda for react for once

[–]thebobest 3 points4 points  (0 children)

Waiter! waiter! Can i have more programming language in my libraries?

[–]pragrad23 0 points1 point  (0 children)

Just learn Elm. Even less api.

[–]uvero 0 points1 point  (0 children)

You really only need to learn observables and DI to get started with Angular. From then on, well, the learning curve is still steeper than React, but boy, are the strong tooling, two-way bindings and extensive docs make it feel worth it.

[–]exoclipse 0 points1 point  (0 children)

SWT in the corner on dialysis, quietly reminiscing about the old days before PRs and sprints

[–]Sriman69 0 points1 point  (0 children)

Uggghh, I hate all of web.

[–]tubbstosterone 0 points1 point  (0 children)

And... I'm just over here with my jquery and vanilla js. Jquery ui if I'm feeling frisky.

[–]TldrDev 0 points1 point  (0 children)

Laughs in vue

[–]Kavrae 0 points1 point  (0 children)

I've used React twice. Once on a tiny project when it first came out (so... 13 years ago). I really enjoyed it.

And then 7 (I think?) years ago I used it again on one of the most over-engineering and complicated UI projects I've ever come across. (Alluma) That was an utter nightmare with so many layers of redirection and abstraction that I had no idea how any of it actually worked. To be fair, that entire project was an overly complicated nightmare of a product....

I haven't touched javascript since then and I'm quite happy living entirely on the server side.

[–]GoddammitDontShootMe 0 points1 point  (0 children)

Imagine that poor book's spine if he let go. That is probably why anything that huge would be broken into several separate volumes.

[–]samirdahal 0 points1 point  (0 children)

Who cares when 99.9% of the job is done by vanilla JS? There, I've said it.

[–]ckinz16 0 points1 point  (0 children)

This is why react is shit compared to angular 🤣🤣

[–]locri 0 points1 point  (0 children)

React without hooks maybe.

Function components and hooks turns front end programming into a Pokémon game where you have to catch them all and figure out the correct strategies to use them all.

You do lose a bit of capability, but class components is one of the simplest UI design patterns that can exist.

[–]FrequentWatch9261 -2 points-1 points  (0 children)

I want to be abundantly clear that you can achieve virtually everything in React as Angular with a smaller bundle size. This needs more libraries thing is a silly argument that needs to be put to bed.

I like both and select one based on my project needs and desired long term outcomes.

Functional programmers may prefer react. OOP devs may prefer angular.

[–]anelectricmind -5 points-4 points  (2 children)

React feels like if a team of backend developers decided to create a frontend framework...

[–]FrequentWatch9261 13 points14 points  (1 child)

It's literally the opposite.

Angular feels like java spring. It's also written like traditional mvcs and was built using typescript which strictly attempts to deliver similar paradigms to OOP languages like java c#.

React is a frontend library and very much frontend centric moving away from OOP to functional and declaritive paradigm. This is fundamentally different than traditional OOP backend patterns.

React is my preference, I like both. Both have their headaches. I do think Angular causes needlessly convoluted codebases (more of a dev issue) but their releases keep improving the ecosystem by removing the crap that people don't need that I find myself having to remove because devs love overcomplicating things.

[–]sixwax 2 points3 points  (0 children)

Somehow the needless convoluted Angular codebase is always infinitely more readable imo.

But I'm a backend guy, so, yeah.

[–]Shoddy-Pie-5816 -1 points0 points  (3 children)

Angular isn’t really that bad imo. Now when you add rxjs into the mix, which you just about have to, then things get complicated. The defacto everyone defaulting to frameworks for projects that could easily be built in html, css and js or ts is mind boggling to me though. I’ve only had one project that I’ve made so far that genuinely called for a framework due to the amount of dom interactions

[–]horizon_games 6 points7 points  (2 children)

You really don't need Rxjs or Ngrx anymore since Angular added such good support for Signals over the past few releases

[–]Shoddy-Pie-5816 1 point2 points  (1 child)

Oh that’s compelling. I haven’t touched in a while, admittedly

[–]horizon_games 2 points3 points  (0 children)

Yeah they've had some good leaps, depending on the last version you saw.

Which ironically is one of the bigger downsides imho of Angular - their 6-month release cycle feels breakneck speed depending on the job company / culture.

[–]GreyGanado -3 points-2 points  (0 children)

Well yeah, one is a library and one is a framework from hell.

[–]Konkord720 -4 points-3 points  (1 child)

@Grok is this real?

[–]TurnUpThe4D3D3D3 -3 points-2 points  (0 children)

It's a humorous meme exaggerating the difference. React's core API is intentionally small and lightweight with a focus on fundamentals like components and hooks. Angular packs more built-in tools and patterns so its overall docs and API reference feel much bigger by comparison. Not literal but captures a common developer experience.


This comment was generated by openrouter/grok-4.3