The whole process is definitely still a mess and I am not trying to defend the chaos, but I think it probably appears a lot worse from the outside.
The whole process is definitely still a mess and I am not trying to defend the chaos, but I think it probably appears a lot worse from the outside.
I watched everyone adopt AngularJS and then have to migrated to Angular 2.0 and then everyone migrated to React. During this time, the backend folks wrote java services using SpringBoot and then migrated to SpringBoot and then when that wasn't abandoned, moved to SpringBoot.
Web development feels way too much like a hamster wheel to me.
A while ago, a few years I think, I learned react with class components. Hooks were never mentioned, so I don't know if they didn't exist yet or were in some nascent stage. I thought "huh neat this makes writing js not completely awful" - my only "frontend"-related background was in desktop UI development with Swing and Qt and such. As I mentioned, I'm mostly a backend dev.
Anyway, I wrote a small internal app for my job at the time and shipped it and it was neat, all the other backend devs (we had ~no frontend devs) were suitably impressed with how much less awful react was than vanilla JS.
Fast forward... I suspect 3-ish years. Suddenly hooks were popular and class components were not and people were being pushed to migrate (since newer versions of libraries were preferring hooks). My hard-won frontend knowledge is already outdated! And imagine my surprise when I learned SSR was back?? and something about next.js which I guess is still react but it's a server packaging of it as well and that bleeds over into letting you do more stuff on the frontend, something about server-side props? I was disappointed with how much had changed despite the actual product - the websites you can build - still essentially staying the same.
And this is just for React - the winner! I had managed to correctly pick the winner and there's still all this churn. Meanwhile, as you mentioned, rails is still almost exactly the same (all its churn has been trying to pick a not-awful way to integrate javascript, ironically) despite several major versions passing, Spring is the same, etc.
All I want to add is that today React is the winner, last week, backbone/ember was, week before that it was angular.
Even winners are transient and ephemeral.
If anything, new frameworks should be simple to use.
I've had the misfortune to work in an Angular codebase last year, I could hardly make heads or tails from it; I'm sure there's good theory behind it, but it was far too complicated.
Currently working in React, and it's got the annoyances of hooks, callbacks, effects, etc; basically, you as a developer are responsible for a lot of rendering behaviour, using what looks like magic trickery. Don't get me wrong, I like the basics of React, but as soon as it goes beyond simple props it's starting to lose me. I heard Vue solved this better or more intuitively, but it's still a layer on top of JS/HTML.
In parallel I've been working in Go, and while it's wordy and frequently annoying (like when using the correct design patterns, you'll end up copying a database struct to a business logic struct to a HTTP API struct, it's boring, wordy and bug prone code), it's still much more of a joy to work in because there's very little indirection or friction.
All this is to say that there are projects and communities that value stability with stagnating so you can still have “nice things” without feeling stuck on a hamster wheel.
That being said, I do love Astro. It's a very nice, easy experience.
It feels like a mountain to climb to get my head around that lot!
https://flowchainsensei.wordpress.com/2021/07/28/kent-becks-...
Like, how can you understand the tradeoffs between react, svelte or vanilla js until you have a basic knowledge of them?
Learning your first programming language is hard. There's a lot of details and idiosyncrasies. The second is a bit easier because you have a base of experience to reference it against. By the time you're picking up your sixth language or front end framework or node API framework, you should be able to much more quickly assimilate the details because you've got so much more experience to draw on.
It almost seems like people are getting off on the fact, that they manage configuration complexity in web projects, as if that makes them somehow qualified. Instead they should be saying:
Wait a minute, why am I configuring all this shit? Why is my web app so big, that using a minifier makes any significant difference? Does my web app really do that much? Couldn't I get by with just rendering templates and add a tiny amount of JS?
But people do not ask and continue riding the hype train and it even makes them more in demand, because way too many people think they need this.