Comment by resters
1 year ago
Some really great ideas came out of Rails 1 and 2. After that Rails became more of a business, but good ideas still came out of the ecosystem and germinated (in my view more successfully) in the fertile soil of node / js, as well as sinatra -> flask / express, etc.
But Rails' core value prop (doing a lot with strongly opinionated structure) is still useful to a lot of people.
My complaint was always that version upgrades in rails were too costly -- teams would spend months -- and it wasn't usually clear whether upgrading was worthwhile. Also the business aspect led to a lot of ephemeral (very hot and then soon unmaintained) patterns/libraries.
Rails 8 makes me want to look again and see how the system overall has matured.
> led to a lot of ephemeral (very hot and then soon unmaintained) patterns/libraries
For hard core web enthusiasts it makes sense to keep toward the cutting edge, but for boring old sites you just want have them run well and not have to worry about swapping out x for y every few months.
I look forward to swapping out sprockets but I know there'll be teething issues. Same for built in authentication, so I won't be swapping out devise any time soon, probably ever. Same with redis for solid (won't be changing any time soon).
Absolutely love the continued work on rails, but it doesn't mean I'll necessarily those new features, which is totally cool - rails doesn't force you to.
With so much mix-and-match it can get confusing though. When I see a tutorial using importmaps I get confused because I only know esbuild. Now there's propshaft. Similarly with asset pipeline, I sometimes struggle with sprockets, now there's something new to learn and all its interactions with other pieces. (mostly paths and debugging is what I have trouble with, i'm no JS wizard [or ruby wizard for that matter]).
(I just want to spend 95+% of my time making things that solve real problems, not tinkering with and finessing pieces of the framework)
I have already upgraded to Rails 8 and am currently writing a guide on how to use Propshaft (because I was unable to find important infos). It‘s far from ready, but I plan to include a wizard that allows you to select your needs and it spits out the combination of jsbuild/cssbuild/importmaps/dartsass that you need.
In short: if your application only needs distribution-ready JS and CSS (from libraries like Bootstrap, Splide or Lightbox2) you only need importmaps-rails. If you use SASS, you need dartsass-rails. And if you need to compile TS (with esbuild or webpack) you need jsbundling-rails.
Especially the first case got a lot easier with Propshaft.
Upgrading from 1-4 was difficult but since 4 it has been really easy. Often times nothing much to do from one version to the next.