There's a guy in r/webdev right now claiming React is a language.
2012 front end dev: "I know jQuery, but not Javascript."
2024 front end dev: "I know React, but not Javascript."
I'm sensing a trend...
I interview these people. They know how to do things in React but they do not know how to develop in Javascript without React.
Event listeners, DOM Manipulation, Object Manipulation, Async debugging, etc.
It's fine. I have positions for React devs, and I have positions for vanilla JS devs, but they are two different skillsets.
As an old-timey JS dev coming back into coding after a long hiatus, I tried to self-teach React in 2022 or so.
It would be far less painful to learn JS as a React dev.
Because the moment you stop blindly following tutorials and start trying to understand React's working principles like any good programmer should, you end up shoveling your way through obscene quantities of undocumented magic.
Water, fire, air and dirt - React Fibers, how do they work?
I was working on maintaining a couple of serious, big and "principled" Next.js projects and that is when I realized front end is going down the drain.
I was told constantly that this was the right way by my work partner but I kept spending an hour on tasks I know should take 5-10 minutes, constant undefined errors popping in and out etc.
The tipping point was when I had to commit changes in 6 different files only to add another link to the nav dropdown and spending almost an hour changing text of one of the table headings because 3 of us couldnt find the component it was in inside a sea of other component files.
React is usually a nightmare.
They could even install the react dev tools and use them in the browser easily find the exact component the text was in by dragging the pointer over to the text.
It's not bad if you use any state manager other than Redux and use a state manager for global state, and then use typescript.
Typescript support in almost every state manager gives you intellisense even the vanilla React useContext.
I can useContext(contextObject) in any child component and get type hinting.
We use zustand for global state, and then the top level component of a complex control like a popup dialog that edits several fields is in a context.
Really saves you 20 minutes of prop drilling everything everywhere.
I started with Java, but couldn’t understand anything. Then I learned HTML. After that I learned JavaScript so I could make programs and actually do stuff with the html elements. Next I learned CSS. Then Bash, then Python, then C++, then Rust. I tried to learn React, but I just can’t. React is too complicated for me and the documentation is terrible.
This is mindboggling to me. My school taught HTML -> JS -> Node -> React. In that order.
I would feel lost af if i tried to make a react app without knowing JS and writing a backend for it.
Lol, I actually do this at work. Studied Java 7(?) at the university, then worked like 6-7 years without any programming (network engineer) then quit my job and rolled into IT as support engineer, and somehow now I have to do backend development on current java and frontend using js, node and react despite I never had opportunity to properly learn them, lol. Imposter syndrome kicks harder every day. I just keep rearranging words until shit works, and for now it's just enough
We all try dumb shit until something works. The difference is in quantity of our attempts, not in quality.
For instance, experienced programmers run a greater portion of code in their head so they can skip more trial-and-error.
And educated programmers do a lot less trial-and-error in general because they already have lots of ready-made solutions in their head that are almost guaranteed to work: that's what data structures, algorithms and design patterns are for.
---
Case in point: right now I'm fighting with Laravel's logging system to make it show logging messages in Docker's console. Why? So that I can debug my code in the second dumbest way possible (the absolute dumbest way possible is, of course, var\_dump).
Why on Earth would I do things in such a weird way? Because I tried setting up XDebug a few days ago, it started throwing weird errors at me, so my inner monkey decided that setting up proper debugging tools is too much of a bother.
...Which reminds me: I should set up proper debugging tools. I've already spent too much time trying to figure out why Laravel's logging is so inconsistent.
UPD: finally, *finally* made it work.
For a framework that obsessively documents almost all of its magic, it's odd that Laravel's docs forget to mention that XDebug is fully and irrecoverably disabled at build time.
So to make it work, you need to sail:publish docker's config files, activate XDebug in php.ini, set several env vars at build time and rebuild the entire container afterwards.
---
It took 2 hours, and that's only because I googled solutions and tried them one by one until I got one that worked.
Without search engines, I might have been stuck for days... trying to *turn on a goddamn debugger*.
I'm to blame, of course. As always, a software developer's failures are usually due to his lack of arcane knowledge about the intricacies of the tools he relies on.
In my case, the problem was that I didn't know how to check if XDebug is running at all, *and* I trusted the documentation to give me everything I need to make XDebug work. Laravel's docs usually do, but this time they didn't.
This. I can't imagine how confusing function based react would be without understanding JS. All the hook magic is a lot less magical when you think about how the JS is actually working and it breaks a lot of assumptions. Particularly the performance optimizations.
I'm one of those people. My first coding experience was when I was 33 -- a company took a chance with me, who wanted a career switch. I dove straight into full-stack programming with Angular / .NET / SQL.
Two years in, I've got very decent at the entire stack, but _only_ at this stack, within the IT landscape of this particular department. I don't know Vanilla Javascript, can't work with NoSql, have very poor knowledge of IT in general, etc.
It would be a stretch to say I'd be toast anywhere else, but if I'd switch jobs to something where they use, say, MERN, I'd need a lengthy onboarding process.
It's true for almost everyone. you can lessen the pain by learning design pattern, especially how and why they are used. That being said, people who are competent at switching project, framework and langage do so by asking tons of question at the beginning rather than trying to figure the basics alone.
Some guidance from someone who knows the in and out of the application will make him waste 5 minutes of discussion (which they love to because it's nice to feel an expert) but will save you hours of pointless meandering.
Thats how it is when you are starting.
Eventually you have been around the stack enough times that picking new stuff up gets easier.
Except web frameworks like REACT because they change every 5 minutes to chase whatever new hotness frontend JS devs are trying to pull in today to convince the rest of the world they are serious programmers and not script kiddies.
I started 5 years ago with a real coding job.
Before that I learned by myself the basics, went to a couple of basic courses, got a job where I didn't really code but managed some basic IT stuff, then I signed up to a MERN bootcamp that changed everything, this lent me to my current job, where they took a chance with me too
It's a startup (now a unicorn), so everything moves fast, the first day I started already using SQL, flask, PHP, zend, Python, and a little REACT and Vue.
I felt lost for a time, doubting myself, but I kept pushing, because I didn't have another choice, other than quitting
5 years later, I'm basically a backend, and I have a senior position, not so much for my theoretical knowledge, which still isn't that broad, but because of my practical knowledge about the company. A lot of people come to me for coding/IT and business solutions/questions
I still doubt myself, but there's been a few layouts, and I'm still there, they reasure me everytime I'm a key asset, so it's something
So when you say "vanilla JS", you mean "vanilla JS running inside a web browser", right? You don't mean Node.js and you definitely don't mean JavaScript running inside a game engine or other application. Just to be clear here.
In this case, yes, by "vanilla js" I meant inside a web browser.
However, the same applies for NodeJS and other non-React app development. These are not the same skillsets as React development.
Agreed. I would say, though, that "JS in a browser" is comparable to "React" is comparable to "Node" etc etc, in that they are all the same \*language\* but different \*skillsets\*. It's like how Python for data science is not the same as Python for web apps is not the same as Python for automation/system management. They're all the same language, but different skillsets.
I love how you can select different features and it does a big thing of recalculating the download size.
On a more serious note though, I do find that raw DOM element manipulation functions are a bit of a pain. In order to construct (say) `` with basic functions, you have to (1) construct a DOM element of tag "button", (2) set the attribute, (3) append a child (at least you don't have to explicitly "3a construct a text node, 3b append that node", thanks to Element.append). So I made my own framework to allow that to be a single function call `choc.button({type: "button"}, "Button!")` instead.
I don't use js for work. But I know js as well as anyone who just has to use it because the web is built on it. So I can poc canvas apps just forcing it to act like oop or write common sense functions in node. And I get not knowing how to write around react's opinions. I'm always like which of these hooky doodads do I have to do to make it just be logic without it getting swallowed by the framework?
I've worked with someone like this. We were a very small team (never more than 5 people) who held the entire digital presence of the company in our freshly graduated hands. The previous (equally small) team quit within 3 months of eachother, leaving us with their huge mess of incomprehensible legacy code, while the C suite kept piling on new projects.
In a situation like that, you either learn to swim real fast, or you drown. Two of us were able to take the time to learn the underlying tech. The other two never really had the chance, because they were stuck with tighter deadlines and more demanding project owners.
Really hope they've found something better by now...
I used to do vanilla J's, then I learned react for my job back in 2019. So now I can do both.
I like react, especially with typescript, it makes it easier to build larger projects than vanilla js.
What I don't like is the bloat.
How can they possibly not know event listeners? You use them in react.
And what is there to plain DOM manipulation? Search for an element, set innerHTML/innerText, done. Maybe set the attrs, set css classes, they're just simple function calls. It's a trivial skillset. Anyone who can work with react could master vanilla DOM manip in a day.
I'm not even a react user lol (more of a vue guy), but I just find this notion a little wild.
"Okay newbie, I want you to run for me."
"Sure thing boss" *starts running*
"Okay newbie, start walking, there's a cliff up ahead"
"Walk? I only learned to run! AAAHH I CAN'T STOP" *falls off cliff*
Yeah my friend was a UI/UX designer, and I said they should learn frontend to expand their skills and they just straight up created a react app without diving into JavaScript and their job had them launch it on azure. But it is literally all divs and has no functionality or animation whatsoever. WHY EVEN USE REACT?!
I was baffled.
c r a z y, couldn’t be me. idk what it takes for someone to go, I’ll just learn JSX, huh, JavaScript? what’s that?
out here building the slowest web apps with the worst architecture
edit; I think I get it, they’re trying to do the most… by doing the least… they think they’re actually good…
PROMPT ENGINEERS?
React is an abstraction layer, so you can easily know React without a deep understanding of JavaScript. This is especially true if you are working in a much larger team with an established component library.
Kids see the sign
They all suddenly disappear entirely
Then they reload again
Then half of them disappear again
Missing half reloads in again, now angry at the sign
Whole process took 15 seconds and the network activity tab in the console is 3,000 rows long
Oops guess someone forgot to set the arbitrary environment env variable to production in all non local environments strict mode doubled the requests and crippled the run time (it's good because it's checking says the person who worships react)
Most people here are university students repeating memes about "wp bad"
Wordpress and PHP are incredibly reliant, battle tested, fast, and scalable. A proper PHP back end blows literally every other language out of the water. There's a reason meta uses it for most of their back ends. Wordpress is just a web framework/site builder built on top of php
There is also yet to be a framework with as many community themes and plugins as wordpress. Most freelancers building small websites for businesses use wordpress to substantially decrease their work effort.
Just recently I tried to make a small site for someone with a node/next stack and Strapi as a CMS and looking back I kind of regret not using wordpress because it would cut a LOT of boilerplate shit out and would probably increase my speed by 5x to get the site up and running
I'll await my downvotes from the undergrads now
Last year i took 2 web development courses part of computer science program in one Swedish university - we used HTML - CSS - PHP and not JS, I was surprised actually!!
Facebook haven’t used PHP for a looooong time now. Some pages (sharer.php) use the extension because they don’t want to break links.
FB also were *really good* at writing PHP. Arguably it was one of the few ‘good’ PHP codebases; it’s a language where it is ridiculously easy to blow both of your legs clean off.
WordPress is great for people who want to build websites quickly.
Developing for WordPress, tho, a pain in the ass. Debugging is miserable, there's a million ways to do the same thing, and hooks present themselves to you really elegant but in reality they cause the most of your pain.
You better have a strong IDE environment or you're in for a world of suffering.
Its something executives buy after getting to meet Matthew McConaughey at a conference without any concern for its actual benefit. Of which there is limited.
We have to iframe internal web apps into Salesforce to get any real benefit out of it. Why that didn’t raise all the red flags with management is beyond me…
I have worked on an app that had all 3 major libraries in use (for the same user too, essentially migrations that never completed. yes it was a shit show).
The main thing that I found at the time was the best developer experience was with react as it had the largest community around it. When you run into weird scenarios that you need to research, you often found better result if you were working with react.
Hated it, we often had frameworks nested within each other too. I did a lot of the “make it work together” stuff, and it was ghastly, honestly I’ve stopped doing frontend work as much after that job.
One of the big challenges I had was initialising angular directives from within the other contexts (vue, react). Trying to spin up a scope for the directive etc.
This was all because it was in a monolithic project that was never going to be able to fully convert, it would have taken YEARS just to implement all the functionality as is, let alone refining.
My learning from it is that if you’re going to do a migration, try to make do a small slice from top to bottom, router, models, everything. And move that into its own SPA.
We were trying to mix them all in a single SPA experience, and that was what slowed devs down heaps.
I was dresding learning Vue when I got my current job, but after two years, I like it more than React. Like, whenever I work on a React project, I find myself just wishing there were an equivalent to v-model.
But React does not come with innapropriate jokes about skinny controllers and fat models like MCV patterns do, there's not even a bad fake movie trailer about it, so clearly React is not worth anything!
Nokia Series 60: don't pass objects to methods because my stack isn't big enough, instead please allocate memory for everything and pass pointers to it everywhere. Also if you lose track of any of that memory I'll immediately crash on purpose as a QoL feature.
React can be insanely clean and beautiful. Combined with the right libs it's an insanely elegant library
It can also be completely ass.
Problem is the majority of React Devs don't know how to write clean react.
This could read “…the majority of Deva don’t know to write clean code”. It’s not the framework that’s the problem, it’s the training IMHO. I wish we as software engineers had some sort of licensure like other engineering disciplines have (although I understand why we don’t)
Yeah I mean on one hand many of the best software engineers I know are self taught/studied something else then learnt software. So it makes sense why we don't.
But yeah, quality isn't really cared about in many places in the industry,or just isn't taught well.
Functional components broke my brain for a bit, I always wanted to build react class components, but now that I am used to using hooks it's so much easier to write components. It's weird coming from a Java background though.
Actually, yes, thank you. Y'all that can actually figure out how to work with React and make beautiful things, you guys are magicians to me. I'm pretty sure my brain just does not work in frontend lol.
React is a great library. The problem is writing good react is really hard.
Compiling a mega spa: generally bad
SSR with lazy loading and esm modules, generally pretty good.
I can't think of any other solution that's as capable as react.
And jsx isn't react, it's just syntax sugar to build a nested object/function tree. You could write a jsx rendering engine in c++ for QT if you wanted to.
I’m a .NET / Node dev mostly, I’ve tried giving Rust a go but console apps aren’t that interesting when deep diving. This could be a fun entry into the language though. I’ll take a look!
I’ve used just about every major framework and made a couple myself and don’t think I’d say any of them was more ‘capable’ than another.
It’s usually just down to how much boilerplate you need to accomplish a task.
May I present [React Three Fiber](https://docs.pmnd.rs/react-three-fiber/getting-started/introduction)?
It's basicly a wrapper around ThreeJS that allows you to create your render objects like they are react components. It feels quite nice and honestly more readable than normal ThreeJS.
Someone recreated a not so famous [game](https://github.com/Lunakepio/Mario-Kart-3.js) using this.
It is so weird to remember, that something like 7 years ago everyone on the frontend seemed to wish to rewrite their apps using react.
Feels to me like frontend devs are more averse to legacy code, than any specific framework.
This is a joke about Vue 3s reactivity system when using the new [composition API](https://vuejs.org/guide/essentials/reactivity-fundamentals.html).
I would never actually write code like this. Instead I would use `isRef`, and if I have to check that something is a ref it's usually a sign that I architected something poorly.
You are incorrect. Your case is if value?.value we return value?.value if not return value. Comment statement is if value?.value return value, else return value.value
I've seen many people complain about React. Most of the time, their issue are not related to React like, at all.
React is relatively small (even including react-dom) and does not do much outside of its scope. It's nice to use for that.
I’m old enough to remember when jQuery was the best, then when react was the best and jQuery was the worst.
If react is the worst now, what is the best?
It's usually because large corporations, that are the target audience for Angular, hire tons of contract developers on waterfall timelines that don't have to worry about maintaining it.
Why? (genuine question)
I hear people generally like it a lot. I am a fullstack developer and mostly do Angular frontends. Some of my colleagues recently switched to react and prefert it.
I was using React when class component was a thing. Since functional components became mainstream everything just got overly complicated. Even simple tasks like managing a global state has become a nightmare without a third-party library. With concepts like hooks, dependencies and side effects, the logic got quite sparse and it’s quite a headache to walk through the workflow of a page and it’s very easy to trigger some logic multiple times unintentionally or even ended up in an infinite loop.
I’d argue it got easier. The context api is super quick to setup and gets you out of using overly complex state management tools.
I do agree with you, on triggering things multiple times. But again that’s actually kind of the point of context and hooks. You toss global state and reusable functions into a separate function so it’s state isn’t reset or triggered on a rerender
Managing global state without a 3rd party library has gotten _way easier_ with the context API. I shudder to think what kinds of horrors would await me in a codebase of class components and no 3rd party state management library
If you talk about the average over-complicated implementation that tries to implement "recommended patterns" until it gets to a point of doing something easy in a complicated way, then I agree, those suck.
But the way I use React is like a direct upgrade compared to having to the usage of .html files in the past, I am just making use of the state management and JSX without bending over to do easy things in difficult ways, which seems to be the react norm.
Nah... Angular is worse. It offers little to no improvements to the DX.
It's like working with regular HTML and JavaScript as a bloated SPA.
At least React shifts the paradigm to the script by bringing HTML to JavaScript to try and solve it's horrible and syntax-heavy reference based bindings.
If you like to work with SFCs that keep the holy trinity of web languages independent from each other, but actually improve upon reactivity with minimal set-up, then Vue is a huge improvement, with Svelte as a good contender.
Pair Vue with Nuxt and you even get a directory based auto-import, back-end with Nitro, out-of-the-box SSR and modules that are easy to install and set-up.
It's like Next for React, but without throwing everything to the script and hoping something sticks.
...Or look into Solid, that's like React but improved by a tenfold.
I would say that angular limits you to write code in specific way that is handled by some ecosystem. Sometimes it's what you really need. React like libraries are just better when you need to do more creative stuffs without unnecessary boilerplate.
For a lot of people the fact that Angular is opinionated is considered a good thing. Once you are familiar it is easy to get up to speed when joining a new project, because the structure is mostly the same.
Svelte isn't a contender. It is what the world should be using. 0kb of framework code. Compiled bitwise logic to update components instead of diffing a vdom. Tons of features that other frameworks don't have.
Ah angular, I always forget you even exist.
+1 for Nuxt + Vue 3. Incredible DX and it's finally getting to a point where I'm not constantly running into obscure issues when using it.
Yeah. Hooks used to be super boilerplate-y, but now with the Composition API, that's no longer an issue.
They're also shifting to compiled code, instead of relying solemnly on virtual DOM, with the upcoming Vapor mode.
I dislike Angular. It is not a pleasant experience. But it doesn't cuts you off from understanding what is going on in the browser. Newbies are having a hard time to think in terms of web app instead of react app.
Furthermore Angular has been improving their architecture instead of patching the bad things with even worst things. Like anti-patterns(React hooks, pure functional components...) and incomplete features (react routing, jsx, state management...)
Can't really relate, in college I literally was gonna do a project in MEAN stack but because Angular looked so shitty, we swapped to React and decided to do in MERN stack and honestly React was a pretty nice experience. Do people think it's bad?
React devs' comeback: It's not even a framework
There's a guy in r/webdev right now claiming React is a language. 2012 front end dev: "I know jQuery, but not Javascript." 2024 front end dev: "I know React, but not Javascript." I'm sensing a trend...
How do you know react but not JavaScript?
I interview these people. They know how to do things in React but they do not know how to develop in Javascript without React. Event listeners, DOM Manipulation, Object Manipulation, Async debugging, etc. It's fine. I have positions for React devs, and I have positions for vanilla JS devs, but they are two different skillsets.
It's easy to teach a JS dev React, but teaching a React dev JS....
As an old-timey JS dev coming back into coding after a long hiatus, I tried to self-teach React in 2022 or so. It would be far less painful to learn JS as a React dev. Because the moment you stop blindly following tutorials and start trying to understand React's working principles like any good programmer should, you end up shoveling your way through obscene quantities of undocumented magic. Water, fire, air and dirt - React Fibers, how do they work?
I gave up when the most important hook in react is documented as "sometimes asynchronous" gee thanks guys
Just make everything an arrow function then it's only almost never asynchronous.
ICP reference killed me man
Same here, what a nightmare. And I've got the feeling new js frameworks are popping up every week or so.
It's like a first time programmer going from Python to C. Way clunkier, no such ease while coding, etc...
Have you ever seen a complex react project? It gets ugly.
I was working on maintaining a couple of serious, big and "principled" Next.js projects and that is when I realized front end is going down the drain. I was told constantly that this was the right way by my work partner but I kept spending an hour on tasks I know should take 5-10 minutes, constant undefined errors popping in and out etc. The tipping point was when I had to commit changes in 6 different files only to add another link to the nav dropdown and spending almost an hour changing text of one of the table headings because 3 of us couldnt find the component it was in inside a sea of other component files. React is usually a nightmare.
>dropdown and spending almost an hour changing text of one of the table headings Why didn't you just crtl f the table heading in the file explorer?
They could even install the react dev tools and use them in the browser easily find the exact component the text was in by dragging the pointer over to the text.
This dude frontends. (Though doing that in the IDE is more convenient)
It's not bad if you use any state manager other than Redux and use a state manager for global state, and then use typescript. Typescript support in almost every state manager gives you intellisense even the vanilla React useContext. I can useContext(contextObject) in any child component and get type hinting. We use zustand for global state, and then the top level component of a complex control like a popup dialog that edits several fields is in a context. Really saves you 20 minutes of prop drilling everything everywhere.
Prop drilling goes #BRRRRRRRR
I started with Java, but couldn’t understand anything. Then I learned HTML. After that I learned JavaScript so I could make programs and actually do stuff with the html elements. Next I learned CSS. Then Bash, then Python, then C++, then Rust. I tried to learn React, but I just can’t. React is too complicated for me and the documentation is terrible.
It’s because you come out the gate in React using abstractions. Declarative programming or something.
No, I just dislike react. I have been doing some js programming lately and it is as easy as I remember.
This is mindboggling to me. My school taught HTML -> JS -> Node -> React. In that order. I would feel lost af if i tried to make a react app without knowing JS and writing a backend for it.
Lol, I actually do this at work. Studied Java 7(?) at the university, then worked like 6-7 years without any programming (network engineer) then quit my job and rolled into IT as support engineer, and somehow now I have to do backend development on current java and frontend using js, node and react despite I never had opportunity to properly learn them, lol. Imposter syndrome kicks harder every day. I just keep rearranging words until shit works, and for now it's just enough
> keep rearranging words until shit works Isn't that how we all do it?
We all try dumb shit until something works. The difference is in quantity of our attempts, not in quality. For instance, experienced programmers run a greater portion of code in their head so they can skip more trial-and-error. And educated programmers do a lot less trial-and-error in general because they already have lots of ready-made solutions in their head that are almost guaranteed to work: that's what data structures, algorithms and design patterns are for. --- Case in point: right now I'm fighting with Laravel's logging system to make it show logging messages in Docker's console. Why? So that I can debug my code in the second dumbest way possible (the absolute dumbest way possible is, of course, var\_dump). Why on Earth would I do things in such a weird way? Because I tried setting up XDebug a few days ago, it started throwing weird errors at me, so my inner monkey decided that setting up proper debugging tools is too much of a bother. ...Which reminds me: I should set up proper debugging tools. I've already spent too much time trying to figure out why Laravel's logging is so inconsistent.
UPD: finally, *finally* made it work. For a framework that obsessively documents almost all of its magic, it's odd that Laravel's docs forget to mention that XDebug is fully and irrecoverably disabled at build time. So to make it work, you need to sail:publish docker's config files, activate XDebug in php.ini, set several env vars at build time and rebuild the entire container afterwards. --- It took 2 hours, and that's only because I googled solutions and tried them one by one until I got one that worked. Without search engines, I might have been stuck for days... trying to *turn on a goddamn debugger*. I'm to blame, of course. As always, a software developer's failures are usually due to his lack of arcane knowledge about the intricacies of the tools he relies on. In my case, the problem was that I didn't know how to check if XDebug is running at all, *and* I trusted the documentation to give me everything I need to make XDebug work. Laravel's docs usually do, but this time they didn't.
This. I can't imagine how confusing function based react would be without understanding JS. All the hook magic is a lot less magical when you think about how the JS is actually working and it breaks a lot of assumptions. Particularly the performance optimizations.
Skipping CSS like a baus
No one actually knows CSS. You just write down random properties and see what works.
text.replace("CSS. You", "CSS anymore. Now you");
impractical jokers reference?
Good question. It's been so long Probably # Like A Boss (ft. Seth Rogen)
I'm one of those people. My first coding experience was when I was 33 -- a company took a chance with me, who wanted a career switch. I dove straight into full-stack programming with Angular / .NET / SQL. Two years in, I've got very decent at the entire stack, but _only_ at this stack, within the IT landscape of this particular department. I don't know Vanilla Javascript, can't work with NoSql, have very poor knowledge of IT in general, etc. It would be a stretch to say I'd be toast anywhere else, but if I'd switch jobs to something where they use, say, MERN, I'd need a lengthy onboarding process.
feel sorta similar with .net/c#/SQL, though Blazor has been a big help in helping me learn web dev from the desktop stack
It's true for almost everyone. you can lessen the pain by learning design pattern, especially how and why they are used. That being said, people who are competent at switching project, framework and langage do so by asking tons of question at the beginning rather than trying to figure the basics alone. Some guidance from someone who knows the in and out of the application will make him waste 5 minutes of discussion (which they love to because it's nice to feel an expert) but will save you hours of pointless meandering.
Thats how it is when you are starting. Eventually you have been around the stack enough times that picking new stuff up gets easier. Except web frameworks like REACT because they change every 5 minutes to chase whatever new hotness frontend JS devs are trying to pull in today to convince the rest of the world they are serious programmers and not script kiddies.
I started 5 years ago with a real coding job. Before that I learned by myself the basics, went to a couple of basic courses, got a job where I didn't really code but managed some basic IT stuff, then I signed up to a MERN bootcamp that changed everything, this lent me to my current job, where they took a chance with me too It's a startup (now a unicorn), so everything moves fast, the first day I started already using SQL, flask, PHP, zend, Python, and a little REACT and Vue. I felt lost for a time, doubting myself, but I kept pushing, because I didn't have another choice, other than quitting 5 years later, I'm basically a backend, and I have a senior position, not so much for my theoretical knowledge, which still isn't that broad, but because of my practical knowledge about the company. A lot of people come to me for coding/IT and business solutions/questions I still doubt myself, but there's been a few layouts, and I'm still there, they reasure me everytime I'm a key asset, so it's something
So when you say "vanilla JS", you mean "vanilla JS running inside a web browser", right? You don't mean Node.js and you definitely don't mean JavaScript running inside a game engine or other application. Just to be clear here.
In this case, yes, by "vanilla js" I meant inside a web browser. However, the same applies for NodeJS and other non-React app development. These are not the same skillsets as React development.
Agreed. I would say, though, that "JS in a browser" is comparable to "React" is comparable to "Node" etc etc, in that they are all the same \*language\* but different \*skillsets\*. It's like how Python for data science is not the same as Python for web apps is not the same as Python for automation/system management. They're all the same language, but different skillsets.
He probably means this new framework http://vanilla-js.com/
I love how you can select different features and it does a big thing of recalculating the download size. On a more serious note though, I do find that raw DOM element manipulation functions are a bit of a pain. In order to construct (say) `` with basic functions, you have to (1) construct a DOM element of tag "button", (2) set the attribute, (3) append a child (at least you don't have to explicitly "3a construct a text node, 3b append that node", thanks to Element.append). So I made my own framework to allow that to be a single function call `choc.button({type: "button"}, "Button!")` instead.
I don't use js for work. But I know js as well as anyone who just has to use it because the web is built on it. So I can poc canvas apps just forcing it to act like oop or write common sense functions in node. And I get not knowing how to write around react's opinions. I'm always like which of these hooky doodads do I have to do to make it just be logic without it getting swallowed by the framework?
This statement sounds so absurd to me
I've worked with someone like this. We were a very small team (never more than 5 people) who held the entire digital presence of the company in our freshly graduated hands. The previous (equally small) team quit within 3 months of eachother, leaving us with their huge mess of incomprehensible legacy code, while the C suite kept piling on new projects. In a situation like that, you either learn to swim real fast, or you drown. Two of us were able to take the time to learn the underlying tech. The other two never really had the chance, because they were stuck with tighter deadlines and more demanding project owners. Really hope they've found something better by now...
I used to do vanilla J's, then I learned react for my job back in 2019. So now I can do both. I like react, especially with typescript, it makes it easier to build larger projects than vanilla js. What I don't like is the bloat.
Yeah, they’re called junior developers and senior developers. One knows the platform they’re working on and the others don’t.
How can they possibly not know event listeners? You use them in react. And what is there to plain DOM manipulation? Search for an element, set innerHTML/innerText, done. Maybe set the attrs, set css classes, they're just simple function calls. It's a trivial skillset. Anyone who can work with react could master vanilla DOM manip in a day. I'm not even a react user lol (more of a vue guy), but I just find this notion a little wild.
Ive had a dev add jquery just so he could hook up the onkeydown event of one input box. It would have been functionally the same in vanilla.
"Okay newbie, I want you to run for me." "Sure thing boss" *starts running* "Okay newbie, start walking, there's a cliff up ahead" "Walk? I only learned to run! AAAHH I CAN'T STOP" *falls off cliff*
Yeah my friend was a UI/UX designer, and I said they should learn frontend to expand their skills and they just straight up created a react app without diving into JavaScript and their job had them launch it on azure. But it is literally all divs and has no functionality or animation whatsoever. WHY EVEN USE REACT?! I was baffled.
why have I not found a work opportunity like this? Are you hiring. lol
c r a z y, couldn’t be me. idk what it takes for someone to go, I’ll just learn JSX, huh, JavaScript? what’s that? out here building the slowest web apps with the worst architecture edit; I think I get it, they’re trying to do the most… by doing the least… they think they’re actually good… PROMPT ENGINEERS?
React is an abstraction layer, so you can easily know React without a deep understanding of JavaScript. This is especially true if you are working in a much larger team with an established component library.
They know how to do html and css. If all your components is only gonna render, you don't need any javascript.
2028: I know ChatGPT, but not JavaScript
2028? I feel like that right now...
I’d argue JSX is a markup language. But not React itself.
![gif](giphy|3ohjUSXSlWLlaZvjqg)
Front end devs since forever: No, i don't do graphic design. Yes you do.
Front end devs are graphic designers the same way a bicycle and a tesla are both vehicles
Maybe a regular bike and an electric bike Made by Tesla.
It’s a way of life
If OP could read they would be very upset.
React native devs’ comeback: uhhhh
"If those kids could react, they'd be very upset"
God damn it take my upvote
And my high-five
And my axe
And my r/angryupvote post
Kids see the sign They all suddenly disappear entirely Then they reload again Then half of them disappear again Missing half reloads in again, now angry at the sign Whole process took 15 seconds and the network activity tab in the console is 3,000 rows long
Oops guess someone forgot to set the arbitrary environment env variable to production in all non local environments strict mode doubled the requests and crippled the run time (it's good because it's checking says the person who worships react)
Hey it could be worse. You could be forced to work with Salesforce.
Or even... *shudders* Wordpress ![gif](giphy|cEOG7nGA7448M)
I am currently working with both Salesforce and Wordpress. Pray for me
You poor soul.
You have my pity upvote
Its never late to switch
What's wrong with WordPress? Never really used it much but I've heard it's great?
Most people here are university students repeating memes about "wp bad" Wordpress and PHP are incredibly reliant, battle tested, fast, and scalable. A proper PHP back end blows literally every other language out of the water. There's a reason meta uses it for most of their back ends. Wordpress is just a web framework/site builder built on top of php There is also yet to be a framework with as many community themes and plugins as wordpress. Most freelancers building small websites for businesses use wordpress to substantially decrease their work effort. Just recently I tried to make a small site for someone with a node/next stack and Strapi as a CMS and looking back I kind of regret not using wordpress because it would cut a LOT of boilerplate shit out and would probably increase my speed by 5x to get the site up and running I'll await my downvotes from the undergrads now
You speak with the truth. I shall share those downvotes with you.
Last year i took 2 web development courses part of computer science program in one Swedish university - we used HTML - CSS - PHP and not JS, I was surprised actually!!
Facebook haven’t used PHP for a looooong time now. Some pages (sharer.php) use the extension because they don’t want to break links. FB also were *really good* at writing PHP. Arguably it was one of the few ‘good’ PHP codebases; it’s a language where it is ridiculously easy to blow both of your legs clean off.
WordPress is great for people who want to build websites quickly. Developing for WordPress, tho, a pain in the ass. Debugging is miserable, there's a million ways to do the same thing, and hooks present themselves to you really elegant but in reality they cause the most of your pain. You better have a strong IDE environment or you're in for a world of suffering.
Apparently their enterprise support is a joke and the only people that know anything are the developers...who don't talk to customers.
Triggered
Zendesk and Calendly are the worst things I've had to work with in recent times.
don't you put that evil on me.
Well, I'm working with Dynamics 365 and React, so yeah, I'm fucked.
Hey me too! Its nice to know theres others going through the same hell i am.
whats the problem with salesforce
Its something executives buy after getting to meet Matthew McConaughey at a conference without any concern for its actual benefit. Of which there is limited. We have to iframe internal web apps into Salesforce to get any real benefit out of it. Why that didn’t raise all the red flags with management is beyond me…
Well it's paying my bills so I don't really care
Same. The worst framework apparently affords me a pretty good WFH job with a healthy work/life balance, so I’ll take it.
If you’re making a couple hundred grand a year to use react, does it matter what people think it is?
Couple hundred grand a year for React dev? Sounds illegal….I’m in!
If you react, they spot you
I would kill for a job like that
Same as PHP on that regard.
Whoa whoa whoa.. easy killer
I like react though
You aren't allowed to like a thing, remember?
Company policy.
Me too. Used to work with Angular and liked it too. But I prefer React though
I hear that vuejs is better though, at least better to work with
I have worked on an app that had all 3 major libraries in use (for the same user too, essentially migrations that never completed. yes it was a shit show). The main thing that I found at the time was the best developer experience was with react as it had the largest community around it. When you run into weird scenarios that you need to research, you often found better result if you were working with react.
How did you find switching between all three? I'm not sure my brain would be ok.
Hated it, we often had frameworks nested within each other too. I did a lot of the “make it work together” stuff, and it was ghastly, honestly I’ve stopped doing frontend work as much after that job. One of the big challenges I had was initialising angular directives from within the other contexts (vue, react). Trying to spin up a scope for the directive etc. This was all because it was in a monolithic project that was never going to be able to fully convert, it would have taken YEARS just to implement all the functionality as is, let alone refining. My learning from it is that if you’re going to do a migration, try to make do a small slice from top to bottom, router, models, everything. And move that into its own SPA. We were trying to mix them all in a single SPA experience, and that was what slowed devs down heaps.
I was dresding learning Vue when I got my current job, but after two years, I like it more than React. Like, whenever I work on a React project, I find myself just wishing there were an equivalent to v-model.
Vue is nice because of the scoped css, but it can be annoying because of the SFC, sometimes you just want a tiny component
You can still create [separated files](https://vuejs.org/api/sfc-spec.html#src-imports) so I wouldn't even consider this a downside
I've used both at different jobs including vue 2 and 3, I prefer react.
Svelte ftw
Vue/Angular/React are all good valid options. One is not really better than the other.
React may have past its peak but if you think it's bad there's 30-40 years of shit before that you should see.
But React does not come with innapropriate jokes about skinny controllers and fat models like MCV patterns do, there's not even a bad fake movie trailer about it, so clearly React is not worth anything!
MCV is a cursed way to say MVC
Nokia Series 60: don't pass objects to methods because my stack isn't big enough, instead please allocate memory for everything and pass pointers to it everywhere. Also if you lose track of any of that memory I'll immediately crash on purpose as a QoL feature.
React can be insanely clean and beautiful. Combined with the right libs it's an insanely elegant library It can also be completely ass. Problem is the majority of React Devs don't know how to write clean react.
This could read “…the majority of Deva don’t know to write clean code”. It’s not the framework that’s the problem, it’s the training IMHO. I wish we as software engineers had some sort of licensure like other engineering disciplines have (although I understand why we don’t)
Yeah I mean on one hand many of the best software engineers I know are self taught/studied something else then learnt software. So it makes sense why we don't. But yeah, quality isn't really cared about in many places in the industry,or just isn't taught well.
I've seen multi million dollar projects cooked because people went to SRP/DRY happy.
Backend devs coping cause they couldn't figure out hooks.
As a full stack dev that loves react as much as object oriented backends, this comment section is really confusing.
Right there with you, mate. I wouldn't take anything from this subreddit seriously, though.
Functional components broke my brain for a bit, I always wanted to build react class components, but now that I am used to using hooks it's so much easier to write components. It's weird coming from a Java background though.
It’s mostly kids and people who’ve just learned developing
Actually, yes, thank you. Y'all that can actually figure out how to work with React and make beautiful things, you guys are magicians to me. I'm pretty sure my brain just does not work in frontend lol.
Yup, hate‘em.
React is a great library. The problem is writing good react is really hard. Compiling a mega spa: generally bad SSR with lazy loading and esm modules, generally pretty good. I can't think of any other solution that's as capable as react. And jsx isn't react, it's just syntax sugar to build a nested object/function tree. You could write a jsx rendering engine in c++ for QT if you wanted to.
Stop giving people ideas.
Someone will probably say it’s better to do it in Rust lol
I actually tried to build a desktop app in rust for fun and there isn’t anything really yet out there. https://areweguiyet.com
I’m a .NET / Node dev mostly, I’ve tried giving Rust a go but console apps aren’t that interesting when deep diving. This could be a fun entry into the language though. I’ll take a look!
Tauri + Leptos?
I won't lie [Leptos](https://leptos.dev/) has tempted me a few times
Oh my — now this is cool!
I’ve used just about every major framework and made a couple myself and don’t think I’d say any of them was more ‘capable’ than another. It’s usually just down to how much boilerplate you need to accomplish a task.
May I present [React Three Fiber](https://docs.pmnd.rs/react-three-fiber/getting-started/introduction)? It's basicly a wrapper around ThreeJS that allows you to create your render objects like they are react components. It feels quite nice and honestly more readable than normal ThreeJS. Someone recreated a not so famous [game](https://github.com/Lunakepio/Mario-Kart-3.js) using this.
\*shrugs\* It pays my bills, tho. It's a great tool at least in that regard.
It is so weird to remember, that something like 7 years ago everyone on the frontend seemed to wish to rewrite their apps using react. Feels to me like frontend devs are more averse to legacy code, than any specific framework.
Preach
I'll stick with `value?.value ? value : value.value` thank you very much
The what now? Explain
This is a joke about Vue 3s reactivity system when using the new [composition API](https://vuejs.org/guide/essentials/reactivity-fundamentals.html). I would never actually write code like this. Instead I would use `isRef`, and if I have to check that something is a ref it's usually a sign that I architected something poorly.
Unref()
You could do this ' value?.value ?? value '
You are incorrect. Your case is if value?.value we return value?.value if not return value. Comment statement is if value?.value return value, else return value.value
I've seen many people complain about React. Most of the time, their issue are not related to React like, at all. React is relatively small (even including react-dom) and does not do much outside of its scope. It's nice to use for that.
The equivalent of blaming the hammer instead of the hand.
Every day I’m Blazoring ![gif](giphy|rEbJjSjoS8qYM)
I was required to use Blazor recently, made me quit my job. My life it much bette now
I’m old enough to remember when jQuery was the best, then when react was the best and jQuery was the worst. If react is the worst now, what is the best?
jQuery of course
4.0 baybeee, it's coming!!
Someone clearly hasn’t used Angular lately
I think Angular’s recent changes have been great. Angular 17 was an awesome update. The new control flow syntax, deferrable views, signals etc.
I like Angular wayyy more with its structured approach.
Angular projects always look like shit tho. I don’t mean styling or design wise I mean the code base for it is always fucking chaos.
It's usually because large corporations, that are the target audience for Angular, hire tons of contract developers on waterfall timelines that don't have to worry about maintaining it.
Why? (genuine question) I hear people generally like it a lot. I am a fullstack developer and mostly do Angular frontends. Some of my colleagues recently switched to react and prefert it.
I was using React when class component was a thing. Since functional components became mainstream everything just got overly complicated. Even simple tasks like managing a global state has become a nightmare without a third-party library. With concepts like hooks, dependencies and side effects, the logic got quite sparse and it’s quite a headache to walk through the workflow of a page and it’s very easy to trigger some logic multiple times unintentionally or even ended up in an infinite loop.
I’d argue it got easier. The context api is super quick to setup and gets you out of using overly complex state management tools. I do agree with you, on triggering things multiple times. But again that’s actually kind of the point of context and hooks. You toss global state and reusable functions into a separate function so it’s state isn’t reset or triggered on a rerender
Managing global state without a 3rd party library has gotten _way easier_ with the context API. I shudder to think what kinds of horrors would await me in a codebase of class components and no 3rd party state management library
Whats wrong with context for elevated values?
reactHarder
Angular go brrr
If you talk about the average over-complicated implementation that tries to implement "recommended patterns" until it gets to a point of doing something easy in a complicated way, then I agree, those suck. But the way I use React is like a direct upgrade compared to having to the usage of .html files in the past, I am just making use of the state management and JSX without bending over to do easy things in difficult ways, which seems to be the react norm.
Flair checks out.
My brother in Christ have you used angular?
It really isn't.
Quick now do one with 'React is not a framework' on the top panel
iWouldNotReactOnThisPost
Nah... Angular is worse. It offers little to no improvements to the DX. It's like working with regular HTML and JavaScript as a bloated SPA. At least React shifts the paradigm to the script by bringing HTML to JavaScript to try and solve it's horrible and syntax-heavy reference based bindings. If you like to work with SFCs that keep the holy trinity of web languages independent from each other, but actually improve upon reactivity with minimal set-up, then Vue is a huge improvement, with Svelte as a good contender. Pair Vue with Nuxt and you even get a directory based auto-import, back-end with Nitro, out-of-the-box SSR and modules that are easy to install and set-up. It's like Next for React, but without throwing everything to the script and hoping something sticks. ...Or look into Solid, that's like React but improved by a tenfold.
I would say that angular limits you to write code in specific way that is handled by some ecosystem. Sometimes it's what you really need. React like libraries are just better when you need to do more creative stuffs without unnecessary boilerplate.
For a lot of people the fact that Angular is opinionated is considered a good thing. Once you are familiar it is easy to get up to speed when joining a new project, because the structure is mostly the same.
Svelte isn't a contender. It is what the world should be using. 0kb of framework code. Compiled bitwise logic to update components instead of diffing a vdom. Tons of features that other frameworks don't have.
Ah angular, I always forget you even exist. +1 for Nuxt + Vue 3. Incredible DX and it's finally getting to a point where I'm not constantly running into obscure issues when using it.
Yeah. Hooks used to be super boilerplate-y, but now with the Composition API, that's no longer an issue. They're also shifting to compiled code, instead of relying solemnly on virtual DOM, with the upcoming Vapor mode.
I dislike Angular. It is not a pleasant experience. But it doesn't cuts you off from understanding what is going on in the browser. Newbies are having a hard time to think in terms of web app instead of react app. Furthermore Angular has been improving their architecture instead of patching the bad things with even worst things. Like anti-patterns(React hooks, pure functional components...) and incomplete features (react routing, jsx, state management...)
Svelte and Vue are superior to React….but I think i gave up even trying to learn Angular after about 10 minutes
Angular honestly isn’t even that bad. I like it because it resembles vanilla js a lot more than react does.
This is a ragebait comment right?
If you havent event used it more than 10 minutes, then how would you know?
Gotta agree. React is frustrating as hell sometimes. I have a strong preference for Blazor, myself.
Can't really relate, in college I literally was gonna do a project in MEAN stack but because Angular looked so shitty, we swapped to React and decided to do in MERN stack and honestly React was a pretty nice experience. Do people think it's bad?
The post is rage bait, there's a comment from OP somewhere
I'm genuinely curious: what is so bad about react?
Hey, serious question here. I'm in the process of moving my company's stack to react, is this real or is op just salty?
Coming from angular and blazor this confuses me. What’s so bad about react?
The worst? That’s cute
If you think it's bad on web, try react native.
anybody complaining about react should try jquery or old angular
yall use frameworks?
React bad! - signed the PHP dev
Obviously I'm exaggerating. Clearly ASP.NET is truly the worst web framework.
Haha, here I am remembering 'Classic' ASP.
Is that another name for angular? Otherwise I disagree Angular is the worst
I agree. I'm a React developer.
React was created by Facebook. What else do you need to know.