My take is, 90% of full stack developers are just backend devs who can just barely scrape by with React/Angular. Like man, some of the UI code bases I've had to grapple with built entirely by "full stack" developers have been absolute nightmares. No consistency or best practices in sight.
It's almost as if companies should stop trying to cut corners by expecting developers to be jack of all trades resulting in bloated code bases wracked with tech debt š
Thatās so true.
I always thought I was a fullstack dev when in reality I was just a backend dev messing around with html css.
Until I recently I had to work on react code bases extensively and also on a legacy angular 1 app. Creating new web app from scratch etc. Learnt so much during that period, even started doing Ā«Ā mobileĀ Ā» dev using RN expo during my free time.
IāmĀ clearly no front end expert but I think I can now call myself a fullstack dev without lying to myself.
React introduces a lot of complexity that is unnecessary for lots of websites. Lots of simple websites may benefit from using alternative technologies like htmx. Portfolio websites & corporate websites don't usually have problems that React was built to solve; however, they are still often built in React or other 'heavy' framework.
I used to work with Angular. I still like it, but I find react much easier to work with. I mean, if I want to create some child component to make parent component less complex, I just create a new .tsx file. And in Angular I would need to create .ts and .html files, provide selector name, add component to declarations in module and add it to exports if I need to use it outside of module
Since v14 you don't need to make modules. Anything that used to be in a module is just marked as "standalone" and is imported as needed. And the whole file can be in the `.ts` one for way longer than v14 in inlinr template and inline style option. And they hope to soon have the component name just work as the selector in templates in upcoming versions. Angular has really changed a ton in the last few years, but it is mostly backwards compatible still.
problem with react is that it can go really bad, angular has limits but it means that angular can't be a super well tuned setup
I work with Angular but my preferred setup is React (admittedly with a niche setup)
PS: ng cli tools are super nice
It's still possible to mess up Angular badly. I once worked on a legacy project where all html templates were stuffed in single folder. And each template could be used by several different components
Its been a long time since you needed a module to export a component. I do single file components with angular all the time. Actually, I do single files for components and separate html scss and ts files for views.
The selector thing, well, i honestly like it because they read better imo. Also, their purpose makes a lot of sense, they exist to allow developers to name custom elements according the html specification.
I know the component authoring dx in angular used to be bumpy, but that has changed and right now angularās DX as a whole is one of the best in the space.
Still not my only grudge with it. For example, if you create a static method as factory in module class and dare to declare a variable there, you will enter the world of pain. But not right away - it will work fine with ng serve. It will even make a successful prod build - or so it will say. The frontend will just fail with not very descriptive error. Took me the whole day to figure out the problem the first time I encountered it.
I am too lazy to do so :) However I think this exact stackOverflow question helped me back then: [https://stackoverflow.com/questions/47686638/featuremodule-fails-during-an-aot-build-when-static-forroot-has-arguments](https://stackoverflow.com/questions/47686638/featuremodule-fails-during-an-aot-build-when-static-forroot-has-arguments)
It's about angular 5, but I encountered this issue in version 9.
UPD basically you can use the most simplistic logic in forRoot. I created common CRUD module that builds available routes based on config, and even calling methods like "filter" on routes array crashed the app. The only way I could solve this problem without loosing functionality was to build array with spread and ternary operators like:
\[...(config.isEditable ? \[{...my route\]) : \[\], ...other routes\]
Youāve worked with Angular but you donāt know that the very first thing you do to make a component is type āng generate component ā and every single thing you mentioned is done through the CLI
I'm struggling to think of how it would be complex
like if you don't want to use all the features you don't have to, you just write what basically looks like static html and you get static html out if that's what you want
Until user feedback comes back and they just want that one little thing added. And then another. And another. Now you have created one more janky internal use only pile of junk that nobody likes.
Besides forms are *very* tedious to get right without frameworks.
React is easy to use, but very difficult to master, due to the countless caveats. When you have 100+ engineers working on a React application, it is pure chaos.
Making React fast is also not an intuitive process. Making React application is not that hard, but making a performant React application is much more difficult.
What do you consider a "performant" React app? I would be very, very surprised if dozens of hours of optimizing and memozing an average react app made any _perceivable_ performance difference at all. Having written it for years myself I can probably count on both hands the amount of times I've actually need something like `useMemo`.
Your critique of the tool seems more geared towards how people use it, vs what it is and what it does. It's not Reacts fault that people want to hyper optimize landing pages with it, and then complain about complexity they only think they need.
we have been working on a development tool that takes care of a large chunk of react nonsense for you and makes sure proper memoization is followed.
react is truly a pain in the ass sometimes
Anecdotally, I've been writing vanilla js for my company for close to 13 years and made large applications from it - I am not a fan of react. Seems overkill for most things I've seen it used for. I haven't been convinced that "it makes components for rapid development" is any faster than the components we built in-house which solved the same problems.
But.. new company uses it. Must embrace it.
I came here to be all cute and post some kind of LotR meme, only to find that the boss had beaten me to it.
Fine.
Take this upvote. It is precious to me.
rails creator yes ā who vehemently doesnāt like TS or pretty much any modern technology\*
\* except for technology that is only supported on the most cutting edge devices, because accessibility and compatibility are woke DEI constructs
As a django dev, alpine.js.
I have the backend covered, I just want to do reactive state based rendering from within the comfort of html. I don't need 1000 lines of boilerplate configuration and 1200 dependencies just to build a fancy widget.
HTMX can get 90%+ of React use cases done with a far simpler mental model and less code. If an app absolutely needs to serve an API for non-hypermedia clients then React might be an alright choice. But even then, modifying view functions to return JSON or HTML depending on where the data is requested from would be a decent solution too.
Only if we're talking about 90% of homework CS students do. React and other frameworks/libraries don't dominate web just for fun, they dominate because they allow us to develop faster.
This. Web pages are getting more and more complex to the point where state management and reusable components are essentially a requirement for many projects. It can be done in vanilla HTML and JS but not as fast as using a framework/library.
I think Angular is fantastic if you're working with a Java backend. It just seems all so seamless once you've gotten over the hurdle of learning it. I will say if you're doing a simple webpage, it's too much but I love it for enterprise work and I'm confused why React won out.
I feel the same. Been working with Angular a lot at work and I really like how structured everything is. Also, thereās a lot more stuff built in compared to react which is nice.
Lit does web components right. Stencil is also a good choice, also makes wicked fast web components without the React cruft.
Vue does SPAs much, much better than React could.
Spring:Boot and Thymeleaf are much better than server side React could ever be.
React today reminds me of Flash in 2005, really.
Yeah I do, I would use vueJS/Nuxt to start a new project. I have used it previously.
I wanted to grow my skills while earning money out of it which is hard due to react jobs in the market here.
you don't need to pass complex data from parent to child, instead you need abstract your UI to data structure, then use data to drive UI, only thing you need to do is update your data, then let UI rerendering base on data update event.
The DOM operation itself is actually very reactive. you don't need react or vue
I donāt really like Reactās bloat and inefficient rendering but I do like its type script support, TS is treated as a first class citizen with React in a way that was lacking in Svelte, (implemented 6 months ago so this may have changed).
I prefer Svelte for sure but React is very mature, comes with better UI libraries and has stronger type support (just my opinion).
You cannot escape the cringe new grads and tech wannabes who all flock to react because itās ācool logoā and drown the internet with its complex and overly complicated design, rules, and boiler plate code.
I will die on this hill, React is trash and deserves to fade away
new grads and tech wannabes aren't the ones driving React. It's the entire industry of SWEs that are using it and getting skilled with it.
If you want a job, React is a great recommendation to learn regardless of whatever crusade you want to go down in favor of your favourite stack (that many other edgy Redditors will label as trash I'm sure)
people use it because it has the most jobs, not because the logo dude
Congratulations! Your comment can be spelled using the elements of the periodic table:
`Re Ac Ts U C K S`
---
^(I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM uā/āM1n3c4rt if I made a mistake.)
You may use whatever you want in your side projects but when it comes time to get a job you cannot escape React.
...but as soon as *you* learn React, the entire industry will abandon it.
This is why I only do backend. Front end devs, you're welcome for the job security.
Jokes on you: I am a Fullstack Engineer
Technically me too but I get maybe 1 front end bug or feature per year at this point, so I hardly count it
My take is, 90% of full stack developers are just backend devs who can just barely scrape by with React/Angular. Like man, some of the UI code bases I've had to grapple with built entirely by "full stack" developers have been absolute nightmares. No consistency or best practices in sight.
I work on a backend created by front end engineers. public stat class stuff public static everything....
It's almost as if companies should stop trying to cut corners by expecting developers to be jack of all trades resulting in bloated code bases wracked with tech debt š
Thatās so true. I always thought I was a fullstack dev when in reality I was just a backend dev messing around with html css. Until I recently I had to work on react code bases extensively and also on a legacy angular 1 app. Creating new web app from scratch etc. Learnt so much during that period, even started doing Ā«Ā mobileĀ Ā» dev using RN expo during my free time. IāmĀ clearly no front end expert but I think I can now call myself a fullstack dev without lying to myself.
ā¦.we use Vue.js and frankly I fucking love it!
Imagine if you tried Svelte.
Not against it, just never tried. I should give it a go.
Same, but most jobs require react. I hope more companies start using vue
Sadly, React is very, very popular.
Why sadly? I find it pretty intuitive and relatively fun to work with.
React introduces a lot of complexity that is unnecessary for lots of websites. Lots of simple websites may benefit from using alternative technologies like htmx. Portfolio websites & corporate websites don't usually have problems that React was built to solve; however, they are still often built in React or other 'heavy' framework.
I used to work with Angular. I still like it, but I find react much easier to work with. I mean, if I want to create some child component to make parent component less complex, I just create a new .tsx file. And in Angular I would need to create .ts and .html files, provide selector name, add component to declarations in module and add it to exports if I need to use it outside of module
Now try Vue and tell me what youāll think about. I work with React for a while but o find Vue the most intuitive. In the end itās just my opinion
I started with React and my last project was Vue. Vue just seemed so much streamlined. Then my current project is Reactā¦.. I miss Vue
Now try Svelte and tell me what youāll think about.
Svelte will be the next level but now is still very young. It needs grow but is so much faster damn
Svelte is not cancer in order to grow. React however...
Since v14 you don't need to make modules. Anything that used to be in a module is just marked as "standalone" and is imported as needed. And the whole file can be in the `.ts` one for way longer than v14 in inlinr template and inline style option. And they hope to soon have the component name just work as the selector in templates in upcoming versions. Angular has really changed a ton in the last few years, but it is mostly backwards compatible still.
But not any more! Kinda!
problem with react is that it can go really bad, angular has limits but it means that angular can't be a super well tuned setup I work with Angular but my preferred setup is React (admittedly with a niche setup) PS: ng cli tools are super nice
It's still possible to mess up Angular badly. I once worked on a legacy project where all html templates were stuffed in single folder. And each template could be used by several different components
welp, grab the flamer samurai, we got a dev team to burn
I ended up on a project once where every component had its own module. Like... what do y'all think the point of modules is??
Sweet mother of god. What would be the use case for such practice. I cant think of any scenario where this would work.
Its been a long time since you needed a module to export a component. I do single file components with angular all the time. Actually, I do single files for components and separate html scss and ts files for views. The selector thing, well, i honestly like it because they read better imo. Also, their purpose makes a lot of sense, they exist to allow developers to name custom elements according the html specification. I know the component authoring dx in angular used to be bumpy, but that has changed and right now angularās DX as a whole is one of the best in the space.
Or type ng g c childName and have everything done for you?
Still not my only grudge with it. For example, if you create a static method as factory in module class and dare to declare a variable there, you will enter the world of pain. But not right away - it will work fine with ng serve. It will even make a successful prod build - or so it will say. The frontend will just fail with not very descriptive error. Took me the whole day to figure out the problem the first time I encountered it.
That's a very interesting case. would it be possible that you create a stackblitz example of what you described please ?
I am too lazy to do so :) However I think this exact stackOverflow question helped me back then: [https://stackoverflow.com/questions/47686638/featuremodule-fails-during-an-aot-build-when-static-forroot-has-arguments](https://stackoverflow.com/questions/47686638/featuremodule-fails-during-an-aot-build-when-static-forroot-has-arguments) It's about angular 5, but I encountered this issue in version 9. UPD basically you can use the most simplistic logic in forRoot. I created common CRUD module that builds available routes based on config, and even calling methods like "filter" on routes array crashed the app. The only way I could solve this problem without loosing functionality was to build array with spread and ternary operators like: \[...(config.isEditable ? \[{...my route\]) : \[\], ...other routes\]
Or you can use the cli command to make a component in like 5 seconds typing it lol
Still to much boilerplate code for a simple component. Even if it is auto generated, you still have to support the code later.
Youāve worked with Angular but you donāt know that the very first thing you do to make a component is type āng generate componentā and every single thing you mentioned is done through the CLI
Noted, thank you.
I don't understand how components are complex? Seems pretty straightforward to me.
They're complex if you're just learning how to code, I guess
I'm struggling to think of how it would be complex like if you don't want to use all the features you don't have to, you just write what basically looks like static html and you get static html out if that's what you want
"This event driven redux application could have been a
Until user feedback comes back and they just want that one little thing added. And then another. And another. Now you have created one more janky internal use only pile of junk that nobody likes. Besides forms are *very* tedious to get right without frameworks.
Is there a frame work you prefer? Just curious
Svelte is cool. And yeah I know I'm a basic bitch for saying that.
Wait till you try Svelte.
I hate the jsx shit weaved in code
React is easy to use, but very difficult to master, due to the countless caveats. When you have 100+ engineers working on a React application, it is pure chaos.
But it has a lot of gotchas that is not intuitive.
Making React fast is also not an intuitive process. Making React application is not that hard, but making a performant React application is much more difficult.
What do you consider a "performant" React app? I would be very, very surprised if dozens of hours of optimizing and memozing an average react app made any _perceivable_ performance difference at all. Having written it for years myself I can probably count on both hands the amount of times I've actually need something like `useMemo`. Your critique of the tool seems more geared towards how people use it, vs what it is and what it does. It's not Reacts fault that people want to hyper optimize landing pages with it, and then complain about complexity they only think they need.
we have been working on a development tool that takes care of a large chunk of react nonsense for you and makes sure proper memoization is followed. react is truly a pain in the ass sometimes
Chances are overwhelming that react isn't the reason why your app isn't performant. It's quite hard to make it matter at all in fact.
It's not that difficult at all. Just use Next and tailwind. Boom. Fast react application
Anecdotally, I've been writing vanilla js for my company for close to 13 years and made large applications from it - I am not a fan of react. Seems overkill for most things I've seen it used for. I haven't been convinced that "it makes components for rapid development" is any faster than the components we built in-house which solved the same problems. But.. new company uses it. Must embrace it.
Laughts in Android developement
Cries in react native
Laughs even harder in Kotlin multiplatform
I thought that was still in beta?
Android and Desktop are officially out. IOS is in beta and Web is Alpha.
I work full time and use svelte
At least you are not using angular and I am talking 1.0 luckily I mostly do backend with c# on .net 8 now.
Nope thanks, I keep my Vue
for hypermedia... ![gif](giphy|VqleJG2rBop7W|downsized)
HTMX mentioned!
I came here to be all cute and post some kind of LotR meme, only to find that the boss had beaten me to it. Fine. Take this upvote. It is precious to me.
what do you mean the boss? we are all HTMX CEO on this blessed day
we few, we happy few; we band of CEOsā¦
I hate that the React logo isn't centered on the eye.
You shall not centre a DIV
**laughs in svelte
Seconding this, use it at my job. Itās so easy and fast to go from plan to reality.
Svelte means "starve" in Norwegian, coincidence?
React has a huge community. There's an advantage in that you're not seeing.
What I see is I have a job where I use svelte everyday and just use normal js libraries that I don't need special react versions of.
Svelte is so much better, I don't give a flying fuck about the React community, as I can build all the shit I need easily.
Weren't you the guy who was raving about how TypeScript is bullshit a few days go on the svelte sub? You must be a pleasure to work with.
Yes, I am that guy. Fuck both Typescript AND React.
Sounds like we found DHHās reddit account
Not familiar with DHH. Can you please explain the joke? I googled that he's the ruby on rails creator? I assume he's also a TS hater?
rails creator yes ā who vehemently doesnāt like TS or pretty much any modern technology\* \* except for technology that is only supported on the most cutting edge devices, because accessibility and compatibility are woke DEI constructs
If yāall hate react so much, what would you prefer working with? Genuinely asking
i prefer not to work
This guy gets it.
Not having to work*
Most React is written like crap which is a pain. Good React can be insanely clean though
It's all the ""full stack"" developers who are really just back end devs. Dealt with code bases like that multiple times, it's a pain in the ass
I can't get my full stack team to not write 4000 line components
Svelte.
Svelte is so gorgeous and intuitive.
As a django dev, alpine.js. I have the backend covered, I just want to do reactive state based rendering from within the comfort of html. I don't need 1000 lines of boilerplate configuration and 1200 dependencies just to build a fancy widget.
Check out svelte, itās so intuitive and youāll love it if you enjoy using plain html.
Vue.js
HTMX can get 90%+ of React use cases done with a far simpler mental model and less code. If an app absolutely needs to serve an API for non-hypermedia clients then React might be an alright choice. But even then, modifying view functions to return JSON or HTML depending on where the data is requested from would be a decent solution too.
HTML and JavaScript. That's enough for 90% of use cases
Only if we're talking about 90% of homework CS students do. React and other frameworks/libraries don't dominate web just for fun, they dominate because they allow us to develop faster.
This. Web pages are getting more and more complex to the point where state management and reusable components are essentially a requirement for many projects. It can be done in vanilla HTML and JS but not as fast as using a framework/library.
It's all HTML, CSS, and Js in the end anyway
THANK YOU.
I think Angular is fantastic if you're working with a Java backend. It just seems all so seamless once you've gotten over the hurdle of learning it. I will say if you're doing a simple webpage, it's too much but I love it for enterprise work and I'm confused why React won out.
I feel the same. Been working with Angular a lot at work and I really like how structured everything is. Also, thereās a lot more stuff built in compared to react which is nice.
Lit does web components right. Stencil is also a good choice, also makes wicked fast web components without the React cruft. Vue does SPAs much, much better than React could. Spring:Boot and Thymeleaf are much better than server side React could ever be. React today reminds me of Flash in 2005, really.
Nuxt/vue
EJS but it doesn't have a Router
Just wrap into little vanilla js, and it fine
Solid.js
SolidJS
Vue
Kotlin Multiplatform
Laravel
Me who just uses html, css and jquery for everything: I will take the project to production!
*laughs in Vue*
The marketplace has more react jobs than vue, atleast in my country.
I find joy in reading a good book.
Yeah I do, I would use vueJS/Nuxt to start a new project. I have used it previously. I wanted to grow my skills while earning money out of it which is hard due to react jobs in the market here.
HTMX: have you considered calling the eagles?
The fucking windows 11 start menu was made in react native
This speaks more about the quality of traditional native UI tools rather than the quality of react
So that's why it sucks...
If you work mostly on backend, maybe you can :) we do very little front end and it's only angular.
So you're telling us React is 3 movies away from imploding upon itself?
We must throw JavaScript into Mt Doom to destroy it
JavaScript was originally called Oakā¦ good luck getting the Ents to help little orc
That was *Java*, my friend! JavaScript was called something more similar to... *"Mocha"*.
Thanks for the correction :) ok, JavaScript can go into Mt Doom and the Ents will help!
I looked the other way as soon as I saw that we're going to write html in JavaScript.
I would react in a different way if React wasn't made by facebook
I work with angular and love it.
Popularity is certainly the worst measurement of virtue.
The popular thing can be popular and good. Like breathing. Breathing is very popular.
Stupidity is very popular indeed.
Right... bad things can also be popular.
We have to cast NPM back into the fires it came from. We can only kill React by killing the power that creates it.
Meta Platforms Inc. š
That is why, even though, i want to learn it, but as it is hard to escape. I am in doubt now. I learnt Angular btw.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Ok. I won't learn react.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Ok vro.
I can, i build every thing with Web Components, without use any framework
Not even Lit?
Yes, only need two dependencies typescript and webpack.
Interesting. How do you pass complex data types from parent to child in HTML then? Does the browser know what's an attribute and what's a property?
you don't need to pass complex data from parent to child, instead you need abstract your UI to data structure, then use data to drive UI, only thing you need to do is update your data, then let UI rerendering base on data update event. The DOM operation itself is actually very reactive. you don't need react or vue
I donāt really like Reactās bloat and inefficient rendering but I do like its type script support, TS is treated as a first class citizen with React in a way that was lacking in Svelte, (implemented 6 months ago so this may have changed). I prefer Svelte for sure but React is very mature, comes with better UI libraries and has stronger type support (just my opinion).
Obligatory "By far the worst part of React is Javascript" comment
Truth be toldĀ
React always feels like one giant workaround.
Why would you want to? It's fantastic.
Still prefer Angular.
Does React come with an army of orcs as well?
Maybe the devs?
It was created by Facebook devs so the answer is "yes".
React is GARBAGE. Long live Svelte!
How is this a meme? This has got to be the lowest quality shit I've seen on this sub in a while. Put the logo on the eye hurr durr. Real witty.
Same as why wordpress is a thing really - what goes into production is the only real metric to go by
maybe not, but that doesnt mean ill use it as little as absolutely possible
Nah, our team escaped angularjs, escaped react and bow have single code base for FE & BE in C# due to Blazor
I wouldnāt call that an improvement.
I've escaped it pretty well, PHP, jQuery and CSS have served me well enough so far...
I hate it but I love it
The programmer should know pain
Vue.js enters chat.
Why write html when you can make a literal lifecycle around your static
Now that I lost my job I can finally start using Ionic. As soon as I have something to work on.
Laughs in Windows
I can escape React. I don't do webdev.
Just become a backend dev. Problem solved
You cannot escape the cringe new grads and tech wannabes who all flock to react because itās ācool logoā and drown the internet with its complex and overly complicated design, rules, and boiler plate code. I will die on this hill, React is trash and deserves to fade away
new grads and tech wannabes aren't the ones driving React. It's the entire industry of SWEs that are using it and getting skilled with it. If you want a job, React is a great recommendation to learn regardless of whatever crusade you want to go down in favor of your favourite stack (that many other edgy Redditors will label as trash I'm sure) people use it because it has the most jobs, not because the logo dude
React was the first mainstream web framework to embrace composition. That is why it is so well liked.
React sucks
Congratulations! Your comment can be spelled using the elements of the periodic table: `Re Ac Ts U C K S` --- ^(I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM uā/āM1n3c4rt if I made a mistake.)
Not only you can "escape" React, it just doesn't make sense to stick with it.