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.
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.