There are 2 problems I have personally with it and 1 is a subjective observation:
1: It harms the ability to learn the concepts of webdev (routing, API routing, hydration, SSG/SSR, templating, etc.) - due to:
- The frequency of concepts being reinvented or considered obsolete (Example: REST API -> GraphQL -> trpc)
- There is no well established "timeless book"/webdoc that explains these concepts (haven't found it at least)
2: it's demoralizing:
- Making you second guess the stack/libs you've chosen and forcing you to relearn and thus never making that "prefect" stable code
- Being told years later that the entire concept/tool has been a disaster for the web
Subjective:
3: Established "old" frameworks are considered harmful/bug-riddled/slow with the only option being to move over to the new trendy framework thus causing the cycle to occur once more.
----
2, It's partially why I refuse to use/learn Typescript (the main reason is that Microsoft controls it - in contrast with say Go or Rust where it's controlled by a foundation), due to the fate of coffescript and other web trends that now has tons of "x was a mistake" (like SPA).
3, this is mostly a rebuttable to the response "just keep using what you like", because I've been burnt before using what was seen once as well-established and polished but when I tried it, it was in total decay (meteorJS).
Essentially I'm conflicted on what to do, I do like the ideas of webapps - that webapps can connect other services together or able to create 1 platform for "every" device.
But the ecosystem is all over the place and where it's very much "chase the unicorn" make huge claims with almost zero long-term plans.
Lastly, I'm not against moving to new tech or new stuff, I very much welcome it, if it is swapping out 1 small library (lets say something the size of sentry.io or prisma.io) not the entire workbench.