4 ms·
I had been programming for about 30 years, I loved it and was excited by it. After work I would go home and work on side projects. React single-handily killed
by kristopolous 2y ago
I had been programming for about 30 years, I loved it and was excited by it. After work I would go home and work on side projects.
React single-handily killed it. It encouraged, usually required, all of the awful design patterns I used to chase all the junior engineers and interns about. This has become endemic in the JS world.
Here's an example: did you know that the uuid npm used Math.random up through 2020 (v.7)? Cryptographically secure random number generation had been available in basically all browsers since 2011. 9 years. If I had an engineer submit that code, I'd rake them over the coals.
Speaking of that, I'd usually need a half-time engineer on larger projects just for the management of the complexity. All of the various frameworks and updates and breaking changes. It was a 20/hour a week job just to stay on top of things. For instance, koajs.
It's a bunch of dependency code of quality I would never let fly, but now I have to use it and grow my team, increase budget, push back deadlines - all to manage the piles. No thanks.
I left that job, quit the industry entirely about 2 1/2 years ago. Reactjs was such atrocious self-aggrandizing bullshit, it made me quit programming. It's fragile, over-engineered, mostly broken, confused poorly defined amorphous concepts that poorly solve mostly imagined problems and the entire industry of front-end is eating up that mode of design like it's some sacred text.
They'll use abstract buzzword concepts that have different conflicting definitions in basically every text you pick up, and they'll never concretely define them but continue to use them as abstract amorphous blobs.
I've got very popular front-end projects. I've been at the C-level of more than one company that sold based on front-end design. The first professional javascript based web app I did was in 1997. I deployed Server Side JavaScript (SSJS)/LiveWire in the 90s, a decade before Node ever existed. I've been at this for a long, long time.
After dealing with react, I never want to touch that stuff again.
- throwaway4good 2y agoCould it be that you never tried to understand react and why the approach makes sense to millions of developers?
- kristopolous 2y agoWe could waste each others time getting into the specifics but I can summarize it. It has affordances and design patterns that inexperienced, new, novice programmers find attractive and tempting but comes with all of the warts and issues surrounding intuitive patterns. That's why it takes over 10 years to get good at programming - counterintuitive insights are the clarifying beacons on any sufficiently complex project. People are "react programmers" instead of actually understanding the specs, standards, javascript, protocols or how things actually work. It's about 100 times easier to find a mediocre junior programmer than a comptent one. React allows, at a great cost of time, resources, and money, a large team of mediocre junior programmers to eventually create what once required a competent engineer and that is why it's popular. Your offshore outsourced $15/hr programming firm can now make a half-assed website or app and you don't actually need to find someone who knows what they are doing. If you've actually worked in the industry, actually dealt with code, been put on projects that are off the rails, you know this is true. You know this is exactly what is happening. Then management is unwilling to pony up the $250k to attract the right talent so you get stuck with the job of making heroic efforts to prevent the house of spaghetti from collapsing. You've been there. You've done this. You know exactly what I'm talking about.
- Aeolun 2y agoI don’t think it’s fair to blame React for the flood of shitty people. It’s a symptom of the problem, not the cause. If I had to manage the collapsing house in Rust I imagine it’d be much, much worse (though I can’t say I ever had that experience, so who knows?).
- throwaway4good 2y agoWhat you write about has got nothing to do with react.
- deleted 2y ago[deleted]
- kristopolous 2y agoI'm sorry. I can't respond to such flippantly rude insincerity without violating the Terms of Service
- lelanthran 2y ago> Could it be that you never tried to understand react and why the approach makes sense to millions of developers? Could you summarise it for me? Sort of along the lines of: <this is what is needed>:<this is what React provides>
- throwaway4good 2y agoIt was the "view as a (pure) function of your model" approach that was architecturally new in react. This article explains it using a bit of react jargon (action, store, dispatcher) which is kind of unnecessary - but that's what I got from a quick google: https://medium.com/@asif-ali/react-architecture-vs-mvc-unidirectional-flow-advantage-c952136919b9#:~:text=While%20MVC%20relies%20on%20complex,management%20and%20promoting%20code%20reusability https://medium.com/@asif-ali/react-architecture-vs-mvc-unidi.... React Architecture vs. MVC: Unidirectional Flow Advantage.
- conradfr 2y agoWhat if I told you that not every company is using React.
- kristopolous 2y agoRight I'm thinking about going back in under a data science or computer graphics team. Just no more web pages
- Aeolun 2y agoThat seems like kind of an overreaction. Sure, the first time I saw React I also thought it was an abomination. But in the end it’s fine. Different, sure, but there really is something to using the same language on both front and back-end, and not having to wonder about how to reconcilliate data and markup. React and the whole ecosystem gives you a thousand extra problems to care about, but it also takes a ton of them go away. It makes the simple things annoying but the hard things also merely annoying.
- kristopolous 2y agoIt's a sincere reaction and I'm making myself emotionally vulnerable by putting it out there. I know that's forbidden on the Internet but I'm still deeply passionate about building good software and I'm just so disappointed by the precipitous decline in quality that's plagued the industry despite the increase budget and manpower dedicated to it. It's inescapably the tools and methods. This ought to be the golden age. Things ought to be great. But they're terrible. Everything has been getting slower buggier and shittier. It's become more complicated while doing less. It's awful.
- smj-edison 2y agoYou mentioned you're passionate about good tooling, would you mind if I asked you what your thoughts are on Glamorous Toolkit[1] and how it compares to other tooling you've seen? [1] https://gtoolkit.com/ https://gtoolkit.com/
- kristopolous 2y agoThere's so many wonderful and exciting things going on in this space right now. It's hard to keep up with them. They all take 100s of hours to get half-way decent at. Really, FWIW, the things I need are: 1. Introspection tools to find out what's going on without having to rewrite the build system. 2. Comprehension and navigation tools (like copilot) that I can interface with and give insight into where things might be happening 3. Timeline tools like rr 4. Advanced diagnotistic tools like ebpf And that's really it. emacs and vscode are the things I cycle around. I still think these are all open problems.
- lelanthran 2y agoRight. I hear you. Pretend I'm a person who agrees with you about React (I might be, after all[1]). Have you ever seen that page "You might not need Jquery"? Can you please write a similar blog post (or even put it into a comment here so that I can bookmark it) titled "You Might Not Need React"? I want to know what it is that React gives (maybe)millions of developers that you don't need. All those things that React is commonly used for: what are you using instead? Show snippets, please. So, yeah, throw me a bone here, please write "You Might Not Need React", because I can guarantee you that there are numerous devs who want to read such a post. Pretty please. [1] I looked at the React tech stack and learning curve for someone who only knows HTML, CSS and Javascript out of the entire web-stack, and noped right out of it.
- kristopolous 2y agoHere's a framework-free SPA I wrote about 2 years ago: https://9ol.es/pl/ https://9ol.es/pl/ as part of this project: https://github.com/kristopolous/music-explorer https://github.com/kristopolous/music-explorer This is all the code: https://9ol.es/pl/scripts.js https://9ol.es/pl/scripts.js . It supports, for instance, Bluetooth controls and I use it as my car audio player literally everyday It does take longer to learn and require more intellectual rigor to do things this way but you also get 10 year solutions instead of 10-month ones and things are way easier to debug, pivot, modify, repurpose, support, All the long-term things you have to do after the act of building when people are actually using the thing. Those are now easier
- lelanthran 2y agoThanks; I've got pretty much similar projects. What I was looking for was literally a "You Might Not Need React" equivalent to the https://youmightnotneedjquery.com/ https://youmightnotneedjquery.com/ site. It doesn't need to be as polished as that, I just want to see <this is what react lets you do>:<this is how you'd do it without react>, even if all the "this"es in there were just patterns. I just want to be clear here, I'm not engaging in bad faith, or trying to prove something. I truly just want to know what react code is commonly used for, and what a vanilla solution would look like.
- hu3 2y agoTake a look at this video from 4 hours ago. You'll like it, I promise. It validates your opinion. React became an insanity. Just note all the nuances and minefields they are adding to an already bloated tech. https://www.youtube.com/watch?v=fXugpgknScY https://www.youtube.com/watch?v=fXugpgknScY For one, it's 2024 and React still has this infinite newbie trap of double rendering. [1] But, it's perfect for job security. "Nobody ever got fired for buying solutions from IBM" became: "Nobody ever got fired for choosing React." [1] https://chanduthedev.medium.com/why-react-app-rendering-twice-e31339ed9461 https://chanduthedev.medium.com/why-react-app-rendering-twic...