I would not. I've used PHP, Python, Go, JS/TS, and Ruby in production with small to medium teams. Teams that I managed on occasion and recruited, to a certain extent.
RoR is great at first but in my experience quickly becomes full of hard to diagnose bugs, its magic metaprogramming seems too tempting for developers to use and leads to all sorts of problems.
There is a lack of good quality, well maintenained 3rd party libraries. No such problem with Python, Node, even PHP to a certain extent.
It's slow, except compared to Python. Ruby 3 is much better but still behind.
If you need to ship decent code fast, I would reach for Django.
If you're doing AI stuff, any Python framework will be best.
If you need to hire a sizeable team quickly, I would reach for Node or PHP.
If you need high performance and high reliability I would use Go.
Agreed that the metaprogramming can lead to some head-scratchers. However, in my experience with Rails/Ruby, that generally seems frowned up on most teams.
Readability is a core tenant in Ruby, but every once in a while someone likes to show how clever they are. No more a problem in Ruby than other languages IMO.
I disagree that there is a lack of good quality, well maintained libraries. Depending on the domain, I think most people would agree that Ruby and Rails has a pretty thriving 3rd party ecosystem. A big part of that is because of how mature both Ruby and Rails are.
> RoR is great at first but in my experience quickly becomes full of hard to diagnose bugs, its magic metaprogramming seems too tempting for developers to use and leads to all sorts of problems.
I think this is true. With Rails you want to be very deliberate about who you hire (there are lots of "Advanced Beginners" out there) and how you vet and manage abstractions outside of the MVC architecture. But if you can stick to those tenets, you'll be rewarded with a very productive engineering org.
> If you're doing AI stuff, any Python framework will be best.
I understand that AI stuff now is mainly Python. But is it possible to connect Rails with some Python program/service, is this one of the purpose of microservices?
Thank you for your reply. In your other comment, you mention that you know Ruby relatively well. Would you recommend learning Ruby along side with Rails (i.e., learning Ruby in/with Rails), if I have some experience with other languages, such as Java, Python, C/C++, Lisp, and so on?
Also are there any Ruby AI libraries that you would recommend? Thanks!
Yes, of course. One of the Ruby shops I worked for did exactly this.
But why add the extra complexity? Ruby and Python are similar enough in terms of productivity and processing time that there's no reason to do this IMHO.
RoR is great at first but in my experience quickly becomes full of hard to diagnose bugs, its magic metaprogramming seems too tempting for developers to use and leads to all sorts of problems.
There is a lack of good quality, well maintenained 3rd party libraries. No such problem with Python, Node, even PHP to a certain extent.
It's slow, except compared to Python. Ruby 3 is much better but still behind.
If you need to ship decent code fast, I would reach for Django.
If you're doing AI stuff, any Python framework will be best.
If you need to hire a sizeable team quickly, I would reach for Node or PHP.
If you need high performance and high reliability I would use Go.