Ruby on Rails continues to thrive
blogyet.com
blogyet.com
You've been bamboozeled.
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.
The options and combination are too many, the work to change something too great for the single developer. It is okay if you want to use Tailwind or Bootstrap.
I confess I don't get what importmaps really do (how can they get rid of the need to precompile js assets?).
At least 5 built-in ways of doing JavaScript. And there are many more outside that, of course. None of these is Rails' "fault". That's the world of JavaScript, how it is.
As for the assets - Sprockets or Propshaft. The latter will replace Sprockets in new Rails versions.
And frankly importmaps or the other possible aproaches are not so hard to understand. Any serious developer should be able to learn that. It's also not a Rails thing, it's just web
Also the Asset Pipeline stack is getting even lighter nowadays since with CSS nesting and other new features you can drop SASS completely
the complexity of the app is greatly reduced as a result.
It got me to thinking. Rails consistency and conventions are one of the biggest advantages for AI. While far from perfect, it seems the less code needed (Ruby/Rails) is a multiplier for AI.
When you use a scaffolding script from Rails or similar, the result is always consistent, and errors will most likely be coming from the command used than from the fundamental way the script works.