3 comments

[ 4.0 ms ] story [ 22.6 ms ] thread
It feels like people talk about Ruby like how people talked about Perl 5 when Ruby was fresh. As much as we laud software that is "done," it seems like any language that fails to evolve is soon eclipsed. Yeah there was Perl 6, but it seemed about a decade late.
Reading the article, it seems that the only reason to say "Ruby did not change" is that it did not add static typing.

Two things here:

1. Ruby added RBS in Ruby 3.0, and static typing exists outisde the official support for a while. Sorbet is an example

2. Not having strong support for static typing does not mean the language is not evolving. You might debate if that (static typing) is good or bad, but the language is no way stuck, there are a lot of things added in the last 5 years. and yes, performance improvements are what we asked a lot of times.

It is very strange to me to write this:

> A bunch of performance work to benefit big applications like Rails, a couple of interesting features that didn’t seem to catch on, and a handful of new syntax additions that don’t amount to much. Nothing quite as game-changing as type hints

and conclude "Ruby did not changed"

So in author words:

- Ruby added performance improvements that benefits Rails => that is good. 90% of all Ruby developers are using Rails so it is a huge change right?

- A couple of interesting features added. And the author adds "that did not catched on". For whom they need to catch. If you want to use them, use them. If not don't. This is not a social media where you either do or don't what the influencer is doing.

- Some new syntax additions. Again, the author says, "Don't amount to too much." There are no facts here. Use them and see if they work for you. But also, the expectation to add something new every time just for the sake of newness is not a good expectation, are okay with y I think.

Again, just because we don't promote that much static typing in the community does not mean Ruby is not supporting it, nor that it is the most important and game-changing thing that ever existed.

It seems to me that the article is a post-factum explanation for switching to another language. It is fine to like other languages and switch to them. No need for extra explanation.

> You can define new methods on an object at call time using method_missing!

Minor kvetch, but this really bit me right in the ass the other day in a different language, when I was trying to figure out why I was getting a bizarre error - turns out, some similar magic was implemented in a class that the object I was interatcing with inherited from.

I loathe this. It makes certain things a joy to write, but for someone jumping into an existing project, it makes things a nightmare to debug.