Hacker News new | ask | show | jobs
by UweSchmidt 667 days ago
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.

2 comments

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.

I have worked with 3 companies that had more than 5 years of Rails and I never had the pain people say it here. It continues to be easy to add features, grow the codebase and understand what is happening.

I wonder how people don't understand the codebases they inherit to be honest.

If the team stays small - rails stays ok.

I've twice now worked for companies that have experienced very dramatic growth. In both of those cases, rails became a huge liability.

Case 1 - I was hire 7, we grew to ~350 engineers in 5 years.

Case 2 - I was hire 50, we grew to ~700 engineers in 5 years.

I'm not saying you can't also mess up that growth without Rails (trust, me - it's very challenging to grow at that speed and retain your sanity) but Rails makes it basically impossible.

And as a counter - if you're small and stay small, basically any tech stack will work just fine, Rails is fine and so are most of the rest.

Essentially - Rails heavily prioritizes single developer productivity at the expense of multi-team productivity.