Rails is still a fantastic way to build a web application. Better than most of the Node.js server frameworks I’ve seen. Plenty of lessons to be had there.
Ruby (and JavaScript) is also where we learned about the pitfalls of monkey patching. Or at least, the most recent place we learned about the pitfalls of monkey patching.
Ruby is mature, like Python, Perl, and Java. You can find very reliable, well-tested libraries to perform almost any task you want in Ruby. These libraries have been through iterations, they’ve been redesigned and replaced with newer libraries over the years, and those newer libraries have matured, evolved, and become the standard way of doing things.
In some ways it’s a breath of fresh air compared to, say, Rust. I’m not trying to pick on Rust here, but it’s just the nature of a new language that its libraries are not as mature or well-thought-out as the libraries for older languages. The library authors for Ruby libraries have time on their side, and it’s interesting to see Rust libraries go through the evolution process all over again. History repeats itself. Library authors make the same mistakes twenty years later, or make completely new mistakes.
The value is more hobby-ish, I like learning languages with different syntactic structures, it builds out the types of abstractions that I can hold in my head. But I also like what I spend time on in this way to potentially have some practical utility if I ever needed to ramp up my level of knowledge quickly.
But if it's libraries are matured as you say then I suppose I could easily learn a bit the next time I have to write a small utility or one-off project. It has a reputation for data processing so I could probably port a small python project to it to dip my toes in a bit.
Rails is still a fantastic way to build a web application. Better than most of the Node.js server frameworks I’ve seen. Plenty of lessons to be had there.
Ruby (and JavaScript) is also where we learned about the pitfalls of monkey patching. Or at least, the most recent place we learned about the pitfalls of monkey patching.
Ruby is mature, like Python, Perl, and Java. You can find very reliable, well-tested libraries to perform almost any task you want in Ruby. These libraries have been through iterations, they’ve been redesigned and replaced with newer libraries over the years, and those newer libraries have matured, evolved, and become the standard way of doing things.
In some ways it’s a breath of fresh air compared to, say, Rust. I’m not trying to pick on Rust here, but it’s just the nature of a new language that its libraries are not as mature or well-thought-out as the libraries for older languages. The library authors for Ruby libraries have time on their side, and it’s interesting to see Rust libraries go through the evolution process all over again. History repeats itself. Library authors make the same mistakes twenty years later, or make completely new mistakes.