You're not stupid for using a framework, and nobody has pulled a fast one on you. https://seldo.com/posts/the_case_for_frameworks
The case for frameworks

Today I read Alex Russell's post The Market for Lemons and I found myself compelled to write a rebuttal. I am a big fan of Alex's work in general but not of this post in particular, which is very long, so allow me to attempt to summarize it

@seldo economics indeed but the changing storyline is also well documented (yes that's grifting!)

And also ppl need to know how HTML/etc work in order to use React not the other way around.

@brianleroux I do not think everybody is using React because Guillermo is just really, really persuasive.
@seldo I didn't say that did I?!
@brianleroux I just don't think any grifting is involved. People are choosing what works for them.
@seldo well they're definitely being deliberately misleading to a large audience of less experienced devs (not just one individual either) and to me that's not professional behavior whether it works for them or not. Which, given the outcomes esp in performance and a11y: not working actually. Not an opinion these are all super well documented claims.
@brianleroux I just don't believe it. I don't think they're being deliberately misleading. I don't think devs, experienced or otherwise, are being misled. The outcomes in performance and accessibility are unfortunate by-products of capitalism and not because people are dumb.
@seldo I don't think anyone is dumb given how long it's been going on they definitely are aware of the outcomes. Like nobody is using the Nintendo eStore or Home Depot or any of the other innumerable bad web experiences we all suffer daily thinking "wow this great professional work". They absolutely know the outputs are garbage and they sell it as otherwise usually justified by the lie it's necessary because it's popular.
@brianleroux Again, I simply do not believe any of that is true. The people who produce those web experiences are doing the best they can with the resources they have and are not justifying it because it's popular, they know it's the best they can do in the time they've been given to do it and the number of colleagues they have. I don't need to assume ill intent to explain what I'm seeing.

@seldo I'm not blaming devs and agree ppl are doing the best they can w the information they've got. They are being mislead, again that's clearly documented, and it's way past time we stop excusing unprofessional outputs.

It's ok to expect better, and do better by web consumers and creators alike.

@brianleroux @seldo I understand your perspective and agree Alex's article can be read as aggressive (though I didn't take it as calling developers stupid).

However, I think you recognize and then undersell the impact of momentum/network effects. We trained/hired lots of new devs in the last decade and many only ever learned React. I've met folks who don't know how to build web sites without it or who used it on large projects where it was wholly unnecessary because they thought they had to.

@remotesynth @brianleroux The economics of the situation you're describing is: they don't have time to learn some other way. It's the same effect described differently.
@brianleroux @seldo momentum can be incredibly difficult to shift. Developers faced with having to relearn skills. Companies faced with having to rebuild expensive projects. All of those economics play into the current state of affairs as much or more than individual developer time. I think you make good points but overestimate these choices being made on how fast it makes devs. I've seen many projects choose React where that was never a consideration. Often no alternatives are even considered.
@brianleroux @seldo yeah, I'm with Laurie on this. It's not just new devs, and not just people lacking information.
For example, I have been making websites and using JavaScript as long as anyone. I have written brutal hacks jquery was too heavy for msie users on dialup. And I usually choose react for all new web projects, because my time is more valuable than the users lost, especially at the start when a project just needs to be proven out by some usage asap.
@brianleroux @seldo imo too often this is framed as a binary "react vs no frameworks", when really there ARE ways to use react more responsibly in the middle ground, which we as a community need to be advocating for more. A remix site carefully built using progressive enhancement is only slightly more/different work than a typical SPA approach, and fairly easy to transition to from a more bloated browser-only approach. That needs to be taught in bootcamps etc. imo
@isaacs @seldo yeah I'm hopefully obviously a big believer in frameworks. And was an early supporter of remix. Super agree bad stuff being taught and that it needs improvement.
@brianleroux @seldo but even then, if the first rev of an app is faster to put in front of people as a bloated pile of onClick events that doesn't work at all until js is loaded? That's the correct economic choice a lot of the time. That's how I built https://model.tier.run and frankly I'm glad I didn't spend time optimizing for low power/network devices from the start, because it would've been more work and largely wasted effort.
Tier.run Model Builder

@brianleroux @seldo hell, it still looks awful on narrow screens, but that wasn't the p0 bug to fix, so whatever. (I will fix it soon, but the value in *starting* there was negative.)
@isaacs @seldo I get it. My opinion is HTML is a fine starting point and pretty fast too.
@brianleroux @seldo I mean, and I know you know this, "it depends". For some things, maybe even a majority of websites, sure, plain old html and 100% server side routing and generation may be a good starting point. For others, it might require committing to interaction patterns and making them costly to change, before they're proven out. And in a LOT of cases, it's never economical to care about one approach vs another or adjust either way.
@isaacs @brianleroux @seldo that's the thing a lot of bigwig devs don't understand. So many small companies are likely not to exist in 12 months. Speed to market is essential. Many don't have the time or resources to bikeshed over perf. Validating product market fit means you shouldn't premature optimize.
@blittle @isaacs @seldo I'm way faster without the abstractions and build tooling getting in the way personally. to each their own oc! premature optimization would be thinking you need an abstraction for, arguably, one of the most straight fwd/ accessible parts (html!)
@brianleroux @isaacs @seldo yeah, that's the thing though, the devs at a small company are going to build the best they can with the technology they know well. Which is why react wins. More devs are proficient in react than alternatives. But that will change over time IMO.
@blittle @isaacs @seldo imo you need to know html, css and js to write react…not the other way 'round
@brianleroux @blittle @seldo this whole conversation is just a giant pile of "it depends". It depends on what you're building. You need to know a hell of a lot less about css and dom and JavaScript intricacies make quite a lot of fancy widget type things with react and some off the shelf component modules than you would to do the same thing with standard browser apis.
@isaacs @blittle @seldo for sure. your proficiency for building a web app depends on your proficiency with web technologies. and that might be aided by an abstraction but by no means is essential complexity.

@brianleroux @blittle @seldo and it depends on what your web app is, how far it strays from "show content" into "do stuff in the browser", etc.

"Don't use a backhoe when all you need is a shovel" is good advice, but so is "Don't use a shovel when you need a backhoe".

@isaacs @blittle @seldo yeah I am just a fan of doing the simplest thing that could work as a sensible default not a immutable edict !
@brianleroux @isaacs @blittle @seldo I'm with seldo, I don't see sinister intent with framework folks, but will add an observation that it's easy to forget how effective plain HTML/CSS can be. I find we pull out tailwind or something and then later go wtf I just needed a single CSS file of globals with like 10 styles.. boom done! You kinda forget it's already a pretty nice DRY setup without adding a bunch of tooling. Next.js is pretty rad, though. πŸ˜…
@mmayo @isaacs @blittle @seldo not sinister but def an evolving story without much awareness about what they previously said/did (which was directly toxic to some of us). whether ignorant or deliberate: not a good look.
@mmayo @brianleroux @isaacs @seldo this isn't just a framework thing either. At Salesforce, I remember debating that you don't need a couple hundred web components to render an interaction free privacy policy page.
@blittle @mmayo @isaacs @seldo fwiw, just to be clear, I'm a fan of frameworks, have contributed to many, and even work on some of them now. I take issue with unprofessional conduct and artifacts.

@seldo @brianleroux I think that's fair and have seen it in play in orgs I work with. "This is what we know and can move fastest with" is always the baseline reasoning.

That doesn't mean that its the right choice in the long run. The oil comparison is apt, we all know it's bad, we all know there are better alternatives and yet many of us continue to abuse our environment for what people keep selling us is easy and fast.

Doesn't make it right, we just need to keep arguing to open people's eyes!

@brianleroux @seldo Woah woah woah... don't hate on the Nintendo eStore
@dlmanning @seldo I like the idea
@brianleroux @seldo I mean it's fine for what it is. By far the most noticeable issue is delay loading assets. It's not obvious to me that would be better if it weren't written in React.
@brianleroux @seldo this is kinda funny, as a Nintendo fan and a #React developer, the Nintendo eShop is famously slow but I didn’t even think it could be related to React itself
@undefined256 it's definitely a really poorly built app. That's possible with HTML too but I'm trying to explain that knowing how to build for the web helps. Knowing a particular flavor of a dialect (which breaks and changes often) isn't as straightforward to optimize. Ever notice how the advocates always claim everything is fixed in the next version. Never ending grift.