I fully agree to the points here, even as a full time ruby lover. Jumping around different languages over the past 10 years really shows staleness in Ruby as a language, even if the ecosystem tries to keep up.
The ergonomics of ruby still have me very much liking the language as it fits how I think, but there are a lot of good developments in the usual neighbors, and I see myself picking up both Python and JS ever more for small projects.
Ruby fully typed would be awesome imo, but I know that goes against a lot of the fundamentals in the language. I just like the syntax and expressiveness of it, but coming from typescript, its just such a bad DX having to work in a large Ruby codebase.
Gradual typing would be introducing static typing into an existing codebase.
Ideally you would want your entire code base statically typed but if it's a large legacy project realistically you might not be able to stop all development work to do that.
Ruby 3.x onwards provides static RBS definitions for the standard library and allows you to statically type your own code too.
So the statement:
> I know that goes against a lot of the fundamentals in the language
is not correct. It's not against the fundermentals of the language, static typing is already part of the current ruby release and has been for sometime.
> People want to know what data type a function takes and what a variable is. That's it really.
I agree and both Solargraph and Ruby-LSP provide that today, as does the IRB REPL.
Unfortutately we have two ways of expressing static types and neither is perfect IMHO. My hope is that a new format, RBS-Inline, will solve that and unite the community.
As well as the developer experience I hope that having static types availible at runtime will also allow performance optimisations.
The ergonomics of ruby still have me very much liking the language as it fits how I think, but there are a lot of good developments in the usual neighbors, and I see myself picking up both Python and JS ever more for small projects.