My main gripe with Rails are conventions everywhere which aren't documented clearly. You just have to know them/learn them over time/from guides. It makes refactoring really hard, too.
Ruby, Python and JS are all at about the same level of difficulty, most of the semantic is the same. If anything, the messiness of the language and ecosystem is the higher barrier of entry (Python and JS).
JS is popular because it has the monopoly on web browser runtime. Python is more of a direct competitor to Ruby and its success is indeed due to low barrier of entry. Non-professionals, including data scientists, picked it up and the rest become history.
And not everything has to be logical, PHP for example is just a shit language, not easy, nor powerful in any metric, just happened to be there at the dotcom boom.
Hard disagree. Whenever I have to write JS I'm always amazed at how much boilerplate is required to do things that are extremely basic in Ruby or Python (and I don't like Python at all, but that's another matter.)
E.g. in JS I have to install a utility library like Lodash to get basic iteration functions that in Ruby and Python are part of the standard library.
With that said there is no doubt that things like RoR, various Python frameworks, Go + templates or Laravel are massive improvements. Especially for internal apps where things like HTMX coupled with templates lets you be extremely productive without scaring middle-managers who are afraid of page reloads. I know something like RoR, Laravel or Django aren’t hyped in tech communities, but in the “real” world where being productive matters a lot more than the underlying tech, which is where (as you point out) they continue to deliver great value. Meaning that they’ve got massive staying power. Being “old” typically also means they undergo much more reasonable changes than your average JavaScript framework where you sometimes might as well pick a completely different one on major updates.
JavaScript doesn’t have anything comparable either, although I haven’t worked much with NextJS with server-side rendering, maybe this brings it closer to DX of Rails
Rails JS build support is confusing and messy, but seems to be under control now, and is as much a fault of the JS ecosystem/hellscape as the maintainers. Turbo seems a bit uncertain too. But on the whole, it is ridiculously easy to get stuff done.
Things I would like addressed better:
* Authentication and Authorization
Actually, that’s it.