Hacker News new | ask | show | jobs
by stephen82 2037 days ago
I guess it assumes we already know how to use the Ruby language, therefore it's a good option to choose for new projects?

I personally know near nothing about Ruby, other than read a couple of documentation pages.

Since I don't know how to use it the right way, I cannot take any side so I can agree or not with this suggestion.

3 comments

This is flamebait but I would say no. Ruby's popularity has been in a steep decline for years now. The most rapid decline of any language tracked by stack overflow metrics. By some measures it's usage is less than 1/4 what it was at its peak.

Ruby is slow. And Rails has an outdated MVC web model when everybody is doing SPA. If you're building a SPA you don't need 90% of Rails functionality. And since Rails is the juggernaut REST framework, there's not a lot of other options.

The last thing is that Ruby's popularity has dropped so much that it's falling out of mainstream. This is kinda sad honestly, but it doesn't change reality. The most obvious example to me is lack of HTTP/2 support. The Rubyists will say "oh it's fine just put it behind a load balancer that does it". To me that's the same as putting your old mainframes in the closet so nobody sees them. Any other "mainstream" language has had HTTP/2 support for years now. Including Java which is notorious for doing everything last

For a single person project, Rails is decent.

I actually think RoR is an utter garbage fire the second you have a team of 3+.

Also, to be blunt, RoR most reminds of me of the old Microsoft web frameworks at this point (asp.net, before core). It's all pre-configured. You have very few structural choices to make, and you can focus on the actual project meat right away. The problem, coming in as someone without experience in the platform, is that documentation is becoming incredibly fragmented.

The second you need to touch a config file, suddenly you have to know exactly what version of rails you're running (because they change config names CONSTANTLY), and what the asset pipeline was like in that version, and so and such forth.

Of course, googling what you want links you to docs for Rails from 2 years ago, which no longer works.

It's eerily reminiscent of microsoft products that tried to the same thing - because "The best out of the box experience" changes every year or three, and they all try to meet current expectations.

So long post aside, having used Rails for a while professionally, but also having come in with a LOT of alternative experience (mainly Node/TSNode/C#/Golang) I find it functional, but fairly unimpressive, for small projects.

Also, the older I get, the more I want type systems. I should try giving Sorbet a spin (ruby, but with types), Because RoR on a large team is a nightmare. Types would help a lot.

> I actually think RoR is an utter garbage fire the second you have a team of 3+.

This isn't a a Rails issue, I have worked on teams with 30+ members with no problems. It is an organizational problem.

> The second you need to touch a config file, suddenly you have to know exactly what version of rails you're running (because they change config names CONSTANTLY), and what the asset pipeline was like in that version, and so and such forth.

I cannot remember the last time I needed to touch a Rails configuration truthfully. I prefer not to touch any configuration. This is a subjective opinion, but less I need to configure the app over time the more stable the configuration is. The configurations don't change that much, you expect them to change during major version releases. I don't know how often you change Rails versions.

> Of course, googling what you want links you to docs for Rails from 2 years ago, which no longer works.

Ok this one I am going to strongly disagree with. Rails has some really good documentation, and solutions are very easy to find for a lot of problems.

> Also, the older I get, the more I want type systems. I should try giving Sorbet a spin (ruby, but with types), Because RoR on a large team is a nightmare. Types would help a lot.

But Ruby is not a typed system out of the box, it is supposed to be duck typed. Now while I might have a leaning towards typed systems also myself, it is not a limitation of the language and layering types on top of duck typing erodes some of the flexibility.

> It is an organizational problem.

Of course it is. But nothing happens in isolation.

Rails requires a lot more effort to keep a team in sync than an equivalently sized codebase in a typed language.

To get the same quality deployment in production we needed extensively customized linters, a broad suite of tests, and much more frequent QA review with Rails.

None of those are bad, but they're a lot of effort to corral folks away from the (sometimes awesome) but usually frustrating amount of variety Ruby allows in expressiveness. Plus you need the testing/qa to stop a larger and larger number of bugs, particularly in cross cutting concerns, that are introduced by the lack of type checking.

Rails is 100% the "Solo developer goes 'Brrrrr!'" framework. It genuinely starts to be a drag compared to the alternatives on large teams.

Of course you can make it work. But generally companies "Make it work" as they migrate to a more serious solution.

When I was younger, that tended to be Java/C#, but lately seems to be more towards either Typescript if performance isn't likely to be an issue or GoLang otherwise. Recently worked with a Rails team looking into moving to Rust, but they eventually settled on Elm instead.

Would still love to get information about how Sorbet is going. Seems like it might be a viable answer at some point.

You find a way that suits you and your team.

I am using a style that's definitely won't be recognized as "the Rails way".

It's OK. We are free to develop whatever pattern with a lot of library (gem) choices. Rails has a mature & active community which is good for dev.