How many dependencies does your package.json file declare? Which versions of node/npm does your team use?
If you're on recent-enough versions and are using any popular libraries, you will have seen the deprecation notices pile up during npm install for downstream dependencies.
Dependencies issue is not exclusive to frameworks. If you don't want to reinvent the wheel, there's no way around using packages, even if you go with vanilla JS.
Java and .net developers also uses dependencies, and they too need to upgrade their dependencies (and sometimes switch out deprecated stuff). Definitely not a Frontend issue.
I've been writing React professionally for over a decade and React from 5 years ago is obsolete. Like, literally won't build with current tools. To their credit, I think the React code itself has maintained reverse compatibility pretty well (it's not React's fault), but the build systems I was using 5 years ago have all changed and broken reverse compatibility. EDIT: Forgot about component lifecycle methods...
Even a well-maintained project like React can't escape the squalor of its ecosystem.
I don't always have this option, but usually these days I choose vanilla JS, imported with no build system, do as much as I can with Python/Django on the backend, and opt out of the JavaScript ecosystem entirely. I haven't regretted it.
Some of the problem with React and npm is that they are a victim of their own success.
React lets you suck in 80 components from 15 different vendors and it works. NPM lets you suck in more dependencies than many other systems because it deals with diamond dependencies better than other systems [1]
Because you can mix and match so many widget sets no wonder you will have trouble when those widget sets change.
[1] package A can import version B of package C, package D can import version E of package C -- so long as A and D don't exchange objects from package C there is never a problem, even if they do it might work.
> To their credit, I think the React code itself has maintained reverse compatibility pretty well (it's not React's fault), but the build systems I was using 5 years ago have all changed and broken reverse compatibility.
That's a problem with your build system then, not React. There is (or was) indeed a lot of churn in build systems, but you wouldn't have been spared unless you had chosen to not use a build system - which is still possible with React, but not with Svelte, Vue or Angular.
My current position on build systems is that if it doesn't work out of the box with esbuild, I'm not using it. If it does work out of the box with esbuild, then it's likely also going to work with whatever comes after.
If it's a 5 year old project, you probably shouldn't be building it with the current versions of tools. You need to pin your dependencies and use the same versions of the tools as before. It'd be the same thing with libraries if you didn't have a lockfile. Your development tools need one too.
My current firm is still on 16 and just trying to make it to 18 because of the deprecations.
All of the WYSIWYG editors that work on 16 are no longer supported. it's a "cross your fingers" in case someone found a security issue (or don't use them)
React 16 is still supported, but it's definitely obsolete.
TimTheTinker|11 months ago
If you're on recent-enough versions and are using any popular libraries, you will have seen the deprecation notices pile up during npm install for downstream dependencies.
Sateeshm|11 months ago
jwr|11 months ago
theknarf|11 months ago
kerkeslager|11 months ago
Even a well-maintained project like React can't escape the squalor of its ecosystem.
I don't always have this option, but usually these days I choose vanilla JS, imported with no build system, do as much as I can with Python/Django on the backend, and opt out of the JavaScript ecosystem entirely. I haven't regretted it.
PaulHoule|11 months ago
React lets you suck in 80 components from 15 different vendors and it works. NPM lets you suck in more dependencies than many other systems because it deals with diamond dependencies better than other systems [1]
Because you can mix and match so many widget sets no wonder you will have trouble when those widget sets change.
[1] package A can import version B of package C, package D can import version E of package C -- so long as A and D don't exchange objects from package C there is never a problem, even if they do it might work.
incrudible|11 months ago
That's a problem with your build system then, not React. There is (or was) indeed a lot of churn in build systems, but you wouldn't have been spared unless you had chosen to not use a build system - which is still possible with React, but not with Svelte, Vue or Angular.
My current position on build systems is that if it doesn't work out of the box with esbuild, I'm not using it. If it does work out of the box with esbuild, then it's likely also going to work with whatever comes after.
justinrubek|11 months ago
olliepop|11 months ago
ng12|11 months ago
regularjack|11 months ago
crab_galaxy|11 months ago
unknown|11 months ago
[deleted]
michpoch|11 months ago
robertoandred|11 months ago
ebiester|11 months ago
All of the WYSIWYG editors that work on 16 are no longer supported. it's a "cross your fingers" in case someone found a security issue (or don't use them)
React 16 is still supported, but it's definitely obsolete.
davidmurdoch|11 months ago
vinnymac|11 months ago
Before that I used Backbone on top of jQuery.
Before that I used jQuery.
Before that I used the document, but I still use the document.
I have barely had to learn anything each decade.
dagorenouf|11 months ago
It’s different paradigm, best practice, file organization, etc.
So it’s close to learning a new language.
And I won’t even go into the fact that Next is replacing React as the standard.
unknown|11 months ago
[deleted]
figassis|11 months ago
pelagicAustral|11 months ago
unknown|11 months ago
[deleted]