5 ms·
This thread has really opened my eyes to how much the world hates react developers, I am one. Unrealistic timelines, implementing what should be backend logic
by adithyassekhar 1y ago
This thread has really opened my eyes to how much the world hates react developers, I am one.
Unrealistic timelines, implementing what should be backend logic in frontend, there's a bunch of ways SPA's tend to be a trap. Was react a bad idea? Can anyone point to a single well made react app?
- noname120 1y agohttps://front.com https://front.com is an example of a React app done right
- AndreasHae 1y agoThe hate is more geared towards SPAs in general, but there are some shining examples that show that a well-made React/Angular/whatever app can have great UX - Clockify being one of them. I don’t think the culprit apps would have substantially better UX if they were rendered on the server, because these issues tend to be a consequence of devs being pressured to rapidly release new features without regard to quality.
- adithyassekhar 1y agoThat's a good example.
- disgruntledphd2 1y agoAnd to be fair, the problems that Facebook had when they introduced React are not common problems at all. As an aside, I was an employee around then and I vividly remember that the next half there was a topline goal to improve web speed. Hmmmm, I wonder what could have happened?
- Zanfa 1y ago> And to be fair, the problems that Facebook had when they introduced React are not common problems at all. That’s one of my favorites. The exact bug they described during React launch presentation, that React was supposed to help fix with the unidirectional dataflow. You know the one where unread message badges were showing up inconsistently in the UI in different places. They never managed to fix that bug in the 10 years since React was announced and I eventually left Facebook for good.
- disgruntledphd2 1y agoTo be fair, that bug increases engagement so it'll never be fixed. All must kneel before Deltoid/QRT!
- lazypenguin 1y agoI don't hate React developers. I hate developers who build consumer facing software and use top of the line hardware and networks to test it while being ignorant to the fact that most of their users will be using their products on 8+ year old consumer grade hardware over spotty 3G
- dpkirchner 1y agoAnd then there's the devs and PMs that have an irrational fear of the back button -- enough so that they never ever use it on their SPA.
- shadowgovt 1y agoIt's also misapplied here. If anything, it appears from the changes being made to WebKit that the issue is detailed interactions with DOM change logic and with CSS, not JavaScript. JavaScript may tickle the issue, but that's like blaming the mouse for allowing you to click on a button that has expensive operations attached to it. I've definitely managed to make a page that uses almost no JavaScript and is dog-slow on Firefox (until Mozilla updated the rendering engine) just by building a table out of flexboxes. There's plenty of places for browsers to chug and die in the increasingly-complicated standard they adhere to.
- kccqzy 1y agoReact was not a bad idea. SPA's tend to be a bad idea. React is just a tool to make SPA's easier to write.
- arresin 1y agoReact is a terrible idea. Everything about it is garbage. The api. State. How they do rendering. The “vdom”. It’s unnecessarily complicated and Byzantine. Like it was designed by someone trying to bill a large company many hours. Svelte is ok. It could have been great but the api for their version of observables is a disaster (which I hope they eventually fix). Sveltekit is half baked and convoluted and I strongly advise not touching it.
- kccqzy 1y agoReact is a good idea compared to having to do SPA's without it. Try doing a SPA with only jQuery. VDOM is also a good idea that simplifies the mental model tremendously. Of course these days we can do better than a VDOM. Svelte in fact doesn't use a VDOM. You can say that VDOM is a terrible idea in comparison with Svelte, but that's just anachronistic.
- guappa 1y agobut SPA are a terrible idea
- Aldipower 1y agoTredict is a webapp written in React that works for me since years. It is fast, stable and useful. The problem isn't React. The problem are KPIs and unrealistic timeline. It is the same then ever. Not a fault of React at all.
- gloosx 1y ago> a single well made react app What about Slack, the messenger? Umm, Discord? SoundCloud? Trello? Bandcamp? Spotify? If I keep going there are actually hundreds and thousands of well-made react apps.
- makeitdouble 1y agoIsn't the most common complaint against Slack that it's not optimized enough for what it does ? That's how I read the rants against its electron app, and people are already choosing the electron app against using it straight in the browser (as they'd do for Gmail or Calendar for instance)
- gloosx 1y agoSlack is one the most slick and pleasant pieces of software to use. It's big success as well as the fact that it's acquisition cost was one of the largest software deals ever – tells of itself – it's certainly a fine piece of software made by fine engineers who used react and electron with a certain amount of dignity. People who rant about tools like react or electron affecting their performance just don't want to understand that it's organisation and people behind the tools who are responsible for their performance.
- makeitdouble 1y agoI'd make an argument about the need for Slack to go beyond. As you point out it's wildly successful and is the backbone of many groups internal communication. Many companies would just stop working without Slack, that's a testament to the current team's efforts, but also something that critical would merit better perfs. I'd make the comparison with Figma, which went the extra mile to bring a level of smoothness that just wouldn't be there otherwise.
- zac23or 1y ago> Slack is one the most slick and pleasant pieces of software to use I've never heard anyone say that before!
- makeitdouble 1y agoYes, SPAs are inherently a very niche concept that has been applied to too many things for the wrong reasons. On react, it's funny that sites where the frontend part is really crucial tend to move away from generic frameworks and do really custom stuff to optimize. I'm thinking about Notion, or Google Sheets, or Figma, where the web interface is everything and pretty early on they just bypass the frontend stacks generally used by the industry.
- AlienRobot 1y agoReact feels like magic the first time you try it, specially if you don't have any experience with JSX. Then you need to prop drill and you regret everything. The main problem is that it tries to do away with a view model layer so you can get the data and render it directly in the components, but that makes managing multiple components from a high level perspective literally impossible. Instead of one view model, you end up with 50 React-esque utilities to achieve the same result.
- TiredOfLife 1y agohttps://github.com/ethanniser/NextFaster https://github.com/ethanniser/NextFaster https://t3.chat/ https://t3.chat/
- bapak 1y agoAfter having worked on React for a while, I can tell you that the problem remains between monitor and chair. React can have all the niceties and optimization in the world, but that fails when its users insist on using it incorrectly, building huge tangled messy components and then wondering why a click takes 1.3 seconds to deliver feedback.
- culi 1y agoAs someone who's worked with React professionally for years, it's honestly shocking how few React developers really understand memoization and when it needs to be used IMO it's the MAIN thing to understand about React—how it renders. Regardless, now I'm the one with egg on my face since the new compiler promises to eventually remove the need for manual memoization almost entirely. The "almost" still fills me with fear
- adithyassekhar 1y agoIs there a good article or something you could point us younglings to? I get that in react almost everything is reactive by default unlike other frameworks. I tend to add useCallback and memo to everything nowadays.
- moi2388 1y agoThat only works if the inputs don’t change often. If they do, it’s actually a performance hit.
- culi 1y agoThis was one of the best guides out there when it came out. It's from 2021 but I think it still holds up https://alexsidorenko.com/blog/react-render-always-rerenders https://alexsidorenko.com/blog/react-render-always-rerenders It's a set of 6 short and sweet posts that breaks down rendering behavior, memoization, and relevant hooks
- mvdtnz 1y agoThe problem that is that react doesn't have a pit of success. Because it's poorly conceived, poorly designed and poorly written software made by people more interested in getting the word "homomorphism" onto their CV than solving real problems. You knew when they started using terms like "monad" and "functor" in order to attach a click handler to a button that something had gone badly wrong. In this very thread there's some asshole using the word "memoization" when "caching" would have been fine.
- hliyan 1y agoBeen a huge React/SPA fan for many years, until the realization began to creep on me that building them was actually harder than building C++ MFC desktop applications (which I did back in the 2000's). Declarative markup was supposed to reduce cognitive load, but it now feels like the interplay between the declarative part of UI development (component markup) and the procedural part (event handling and state) has slowly morphed into something more complex than simplly developing the UI procedurally. Back in the day (I was a junior dev) this was easier than grappling with React hooks today: BOOL CMainDialog::OnInitDialog() { CDialogEx::OnInitDialog(); m_pPropertySheet = new CMyPropertySheet(_T("My Tabbed Dialog"), this); m_pPropertySheet->Create(this, WS_CHILD | WS_VISIBLE, WS_EX_CONTROLPARENT); CRect rectMainDialog; GetClientRect(&rectMainDialog); CRect rectPropertySheet(10, 10, rectMainDialog.Width() - 20, rectMainDialog.Height() - 20); m_pPropertySheet->MoveWindow(rectPropertySheet); return TRUE; }
- winrid 1y agoLast couple years I built a largish javafx app and this was the entire way I structured it. A little tedious, but if I have a state management issue it's just logic on my side and not ten layers of abstraction.
- hliyan 1y agoThat's a good way to put it. A bit tedious, but the mental model is relatively simple. Reading and writing code feels a little closer to riding a bicycle than operating a Rube-Goldberg device.
- NooneAtAll3 1y agowhat does MFC mean?
- hliyan 1y agoThe Microsoft Foundation Class library: https://learn.microsoft.com/en-us/cpp/mfc/reference/creating-an-mfc-application?view=msvc-170 https://learn.microsoft.com/en-us/cpp/mfc/reference/creating...
- iamsaitam 1y agoIt's one of those cases where it only get's noticed when it's bad. It's also easy to hate on web technologies since everyone get's to use them everyday (larger user base). But most important of all, it makes people feel good about themselves hating on a technology used lot of times by people who are just starting out with programming. Gatekeeping at its best.