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.
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
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.
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.
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.
I never had this issue with Java frameworks. I could drop into a large Java codebase almost anywhere and quickly get a lay of the land.
I have worked in several languages sever side and I have never had a problem jumping into a codebase until I had a Ruby project to join.
Maybe any technology seems magical until you understand it. I see at least as much magic in Java as Ruby now.
There's a lot of reflection magic but it's not the wild west like Ruby can be because there's limits on what you can do to a class file once it's loaded. It's mostly limited to peeking at annotations on fields and methods and calling those methods or reading fields.
You can't redefine the methods or fields on an object at runtime, which prevents a lot of misguided insanity.
Ive been tinkering with rails since Rails 4, but in my dayjob I use Laravel a whole lot. At this point I have spent way more time in Laravel than Rails.
Yet pretty much every time I have to work with Laravel, I wish it was rails instead. Rails being "comfortable" is quite apt, and definitly something I'm missing.
I very much enjoy the Laracasts videos and I work in PHP currently so I've though about starting their Laravel learning series.
On the other hand, I create a RoR application for my university and I've always loved Ruby - but it's been a long time since I've done anything with Ruby.
I am also very happystill to spin up `rails new` for every little side project