My company "inherited" some medium-sized Ruby on Rails codebase, and OMG what an abomination it is. Everything is "magic", everything is implicit and to find out what does what is horrible. I've done Ruby development in the past (production API with Sinatra) and it was OK, but I'll never start a "real life" project in Rails.
Read through the Rails docs and you'll learn all the "magic" is pretty easily explainable, mostly just predefined naming conventions and directory structures and a bunch of preconfigured gems.
Rails indeed has magic but the way Vercel has taken over React and the javascript ecosystem, it is really sad. The author makes some good points about the upselling and the javascript devs are so used to it that they pay the shipfast guy $299 to configure their project which makes the shipfast guy high 5 figure profits every month. Just for selling configuration. I kid you not.
I think the key is that ruby is good for kickstarting a business and getting it to a state where the business runs with high execution speed and minimal effort.
Once the business is operational and stable then continuing from there is bad. Usually you will have to change the entire stack and of course from certain perspectives this can be seen as a lack of foresight.
But if you chose to use another technology to start it could be that the speed of execution just wasn't fast enough and your business never reaches that island of stability because the technology just wasn't fast enough.
When I learned about Rails a long time ago I thought the idea of MVC, scaffolding, creating the database, code and frontend that works, i.e. a basic application was genius, but hasn't quite caught on it seems.
Communities for RoR or Microsoft MVC could have created templates for all kinds of applications, and parameters with best-practice implementations of useful stuff like "jwt webtoken" could have been added and maybe implemented to work across different application templates?
Maybe there are good reasons why this is not feasible on a fundamental, technical level, but maybe that's just a path not travelled, as the open source spirit fizzled out and people tried for their own unicorn app.
In my experience I discovered Rails and Django because the generic do everything systems always run into some big roadblock that the client demands.
At the end of the day every client/company has their own special requirements so going with a framework that speeds that process up without the pain of a generic system is where it is at.
I cringe when I hear stories of new teams trying to move off Rails into something like Wordpress.
I mean... This is basically exactly what Microsoft tried.
Template out your app, create the pieces through wizards, reduce developer need to interact with the underlying tech and make complicated choices in favor of best practice defaults.
It was... mostly horrible (and I think this pain is where RoR is right now). The problem is that templates go stale awfully fast, tech changes, best practices change, good defaults change.
Keeping a coherent codebase where the developers don't have an understanding of the choices that have been made is recipe for disaster. It always ends up mattering, because often best practices depend on top level objectives and aren't objectively correct, but rather trade-offs.
RoR does what the author needs - it quickly bootstraps a tech company. The trade-off is that it sucks so hard in year 5.
You get an easy start and a miserable middle. That's probably a trade most startups should make, but as a person who has to inherit that junk... Wow is it painful.
xtracto|1 year ago
coffeecloud|1 year ago
ilrwbwrkhv|1 year ago
aeze|1 year ago
desireco42|1 year ago
sparker72678|1 year ago
ninetyninenine|1 year ago
I think the key is that ruby is good for kickstarting a business and getting it to a state where the business runs with high execution speed and minimal effort.
Once the business is operational and stable then continuing from there is bad. Usually you will have to change the entire stack and of course from certain perspectives this can be seen as a lack of foresight.
But if you chose to use another technology to start it could be that the speed of execution just wasn't fast enough and your business never reaches that island of stability because the technology just wasn't fast enough.
UweSchmidt|1 year ago
Communities for RoR or Microsoft MVC could have created templates for all kinds of applications, and parameters with best-practice implementations of useful stuff like "jwt webtoken" could have been added and maybe implemented to work across different application templates?
Maybe there are good reasons why this is not feasible on a fundamental, technical level, but maybe that's just a path not travelled, as the open source spirit fizzled out and people tried for their own unicorn app.
jarsin|1 year ago
At the end of the day every client/company has their own special requirements so going with a framework that speeds that process up without the pain of a generic system is where it is at.
I cringe when I hear stories of new teams trying to move off Rails into something like Wordpress.
horsawlarway|1 year ago
Template out your app, create the pieces through wizards, reduce developer need to interact with the underlying tech and make complicated choices in favor of best practice defaults.
It was... mostly horrible (and I think this pain is where RoR is right now). The problem is that templates go stale awfully fast, tech changes, best practices change, good defaults change.
Keeping a coherent codebase where the developers don't have an understanding of the choices that have been made is recipe for disaster. It always ends up mattering, because often best practices depend on top level objectives and aren't objectively correct, but rather trade-offs.
RoR does what the author needs - it quickly bootstraps a tech company. The trade-off is that it sucks so hard in year 5.
You get an easy start and a miserable middle. That's probably a trade most startups should make, but as a person who has to inherit that junk... Wow is it painful.
bitwize|1 year ago
DoesntMatter22|1 year ago
pjd7|1 year ago
toddsiegel|1 year ago
https://guides.rubyonrails.org/
https://api.rubyonrails.org/