3 ms·
I've been a Rails dev for many, many years, so I'm not shitting on it. My one concern with Rails is human scaling, not so much "web scaling". A lot of big comp
by dlisboa 3y ago
I've been a Rails dev for many, many years, so I'm not shitting on it. My one concern with Rails is human scaling, not so much "web scaling".
A lot of big companies use Rails and are successful at a large human scale. But one thing that is often not talked about is that they have the financial resources to hire the very best programmers in the world, and often they hire the very people who build the framework (e.g. Shopify, GitHub I think had a few members go through it, etc).
This is critical when the biggest questions with Rails is: how to achieve clean code, modularity and separation of concerns; how to achieve high throughput.
It doesn't surprise me that Basecamp says they never have issues with a huge monolith in Rails: they invented the framework and know their way around it. It doesn't surprise me that Shopify doesn't have issues with scalability: they have Rails core team members and Ruby engineers dedicated to creating an entire new Ruby VM.
If the problems with Rails are solved by "throw the best people in the world at it" then it's a self-limited proposition. I have worked on countless Rails apps over the years, not one would pass the "this is just great code" test. They were not built by incompetent programmers. It's just that the "Rails way" needs a very heavy guiding hand behind it. In the real world that is often easy to lose: senior team members leave, you don't have time to rewrite parts of the code, you may not even have the expertise in-house to improve the codebase significantly. Bigger companies don't usually have these problems.
And if you look at big Open Source Rails projects (Discourse, Spree, Gitlab), you'll often see the same patterns: 1000+ line models, non-standard Rails-way ideas like services and operators, hundreds of files all in the same place without any clear modularity... and these are not bad programmers at all. Maybe Rails at human scale is just hard, or maybe there’s something about the framework that leads to this.
- devoutsalsa 3y agoFor some reason, Rails is the only framework I’ve worked with that seems to require constant discussions about design patterns and best practices. I don’t know why.
- notjoemama 3y agoInteresting. I worked on a team for several years and our discussions were completely absent of design patterns and best practices. I'm older. Do you think age/experience plays into it? I only ask because I'm not interested in those discussions anymore because I feel like I've already had them all.
- devoutsalsa 3y agoI did an interview not to long ago where the hiring manager was asking me all about Rails best practices, design patterns, and other Ruby-isms. Spent very little time talking about the actual problems he was trying to solve. Also spent a lot of time asking me how I’d fix an 1100 line controller with no tests and many code paths. He also talked a lot about how he had fired all of the developers that made this mess, and also needed to hire senior developers that could move quickly. It was a very strange interview.
- notjoemama 3y agoJeez. I'm sorry you had to endure that. In case no one mentioned it, you can wrap up the interview yourself. I know its uncomfortable to do but some places need to grow up more than they need to hire a developer. Good luck in the future!
- winrid 3y agoSounds like you never worked on a large NodeJS project. That's all they do, at every company I worked at, when using Node. :P