← Back to context

Comment by 9rx

5 days ago

The thing about Rails is that it does one thing really well and beyond that you are completely on your own. Without incredible discipline, this becomes a problem because people tend to fall in love with how well it does that one thing and start dreaming up how their other problems that inevitably show up in a project of any meaningful complexity can be solved with the same kind of 'magic'. But they don't have the multiple decades of refinement and literal thousands of developers supporting their solution to give it the same polish that the Rails core has. Which means that, with almost certainty, what they come up with is going to be a nightmare.

The best of the best developers may have the resolve necessary to ignore their emotions and stick to writing 'magic-less' code when they move past the one thing Rails does well, but most projects are going to land in the laps of most developers who aren't that. I am sure we can find counterexamples of where exceptionally skilled teams have been able to wrangle Rails, but the exceptions do not make the rule.

On the other hand, when beginning in a place where writing ugly, boring, but at the same time usable code is the norm, even the average developer tends to stick with it when they need to do things that are "off the Rails". They don't have the original enamourment to get caught up in. There are plenty of developers who can still manage to screw this up too, but, again, exceptions do not make the rule.

Rails is just a tool, of course. The outcome ultimately is down to the operator. But there is a certain psychology at play that introduces difficulty. It is kind of like giving the average daily commuter, who is a perfectly fine driver under normal circumstances, a supercar with features they can fall in love with. In theory it's just a car to drive as they normally do, but they're bound to do something stupid with it when the emotions take over.