i feel so validated in that when someone first pointed me to "create-react-app" (several someones actually) like it's a normal way to do frontend dev in the year 201X/202Y i ran it, concluded the output was dogshit, got into a minor fight over it and then never touched it again

turns out it is in fact dogshit, professionals agree!

i was porting a c++ app to the web and the node_modules folder alone had more files and more bytes than the entire c++ part. by more than an order of magnitude, if i recall

i'm not a javascript hater (i think modern JS and TS are pretty good all things considered!) and i'm not even a react hater (i maintain two react apps! not apps-pretending-to-be-websites, actual applications); i am however definitely a create-react-app hater. i cannot imagine why you would actually want this abomination

@whitequark lol yeah i noticed when i started doing rust wasm the js blobs were bigger than the wasm
@dysfun eeeeh yeah bindings aren't usually very compact
@whitequark it's such a mess. React's got some good ideas but god the ecosystem makes me want to claw my eyes out. At least some alternatives are a little more sane, but the sheer *volume* of the React ecosystem overshadows everything.

@stargirl yes

the React apps I maintain are... if I had more time and inclination I'd rather do it without React and the application would be better, but this is sorta how I ended up doing them for lack of more knowledge and experience

they're not terrible, they're carefully designed to import a fairly conservative set of libraries and they don't need a minute of runtime to build. but they're definitely not good either

@whitequark I feel that, I also feel like that is the case with *any* SPA regardless of how its implemented, it just always feels like it could be done better, but it's often just that it can be done differently and none of the options are satisfying.

@stargirl in this particular case I happened to have a lot of inherently imperative bits, so half of the React-importing code is basically working around React's entire model

I used React because it had an UI components library I wanted to use (I'm really bad with CSS). the library since got deprecated or something, I think. if I could wave a magic wand and have CSS fall out of the sky fully formed I'd just use Web Components

@stargirl none of https://amaranth-lang.org/play/ really needs React, it just happened to be something that sorta worked at the time and wasn't unusably terrible
Play with Amaranth HDL!

@whitequark lit is actually quite nice (along with web awesome if you want prefab components), but it is harder to build an "app" with lit alone, and there's still so many rough edges with web components (forms, for example). The project i'm working on now is using lit, but I kind of wish I'd gone with vue.

@stargirl @whitequark my read on react and its forebears has always been "this is for serving ads from a highly dynamic bidding system, and all other functionality is incidental" and I feel that I have never been poorly served by adopting this perspective

which is not to say that MVC is not useful, or that it's not a good implementation of MVC, but,,,

@SnoopJ @stargirl @whitequark at its core react is a tiny library that solves one problem: procedural manipulation of ui state leads to hard to find bugs, and it solves that with the sledgehammer of "render is a function of current state".

there's lots of arguments to be made about the tradeoffs of that solution, but it's not an unreasonable one if you have had to fix ui state problems in your life with a different paradigm

@stargirl @whitequark @whitequark I found out the other day that apparently the Windows 11 Start Menu is a react app.
@whitequark configuring webpack, babble and the other tools used to be a huge pain.
@truh i could see that but this also feels a bit of a "out of the frying pan, into the fire" situation

@whitequark oh definitely, it's just hiding all that config in the node_modules and the only (documented) way to make any modifications was to adopt the overcomplicated configuration into your project, leaving you with no way to update ever again without days of effort.

But at least it got you started quickly I guess. Never used it on a serious project myself.

@truh it most certainly did not get me started quckly because my step #1 when encountering a new environment is to take it apart to understand how it works :p

and even the configuration without the hidden bits was pretty challenging to wrap your head around

@whitequark so what did you end up doing? Taking apart cra wasn't the worst way to learn about webpack.
@truh esbuild existed by the time i decided to unignore webdev
@whitequark as someone who has the displeasure of maintaining two NextJS apps, I'd say, create-react-app is by comparison, neat and lightweight! (but yes, bad)