| I think the biggest challenges that Ruby faces are: * No built-in type hinting (you have to reach for Sorbet which is a lot more than just hinting)
* developer ecosystem seems to struggle to get gravity around anything that's not web-related. Python has so much diversity of packages. You need simplex noise? Package. You need a terminal ui library? Yep. You want to use wxwidgets or qt? Yep and yep. You want to do computer vision? yep. Ruby can check some of those boxes, to be fair, but ime the ruby solution tends to be less-used, lower-quality, and more likely to just be thin bindings around the C APIs (if relevant) than a more holistic language-native implementation. I'm a little sad because I honestly like Ruby more than python just from a language perspective. RubyGems alone are better than the trillion packaging solutions that python has churned out. I like ruby's preference for method chaining vs python's list/set/dict comprehensions (just look at what a "2-layer" list comprehension looks like :( ) Also, for the type-hinting thing, maybe it's just me, but the only reason I don't consider python to be a trap is because it added type hinting as a first-class thing. Eventually, as a project grows, you just need types sometimes. I don't like that Sorbet is a) third-party and b) pretty heavy-weight (does a lot more than just type hinting) and I also think it's just not as pretty (it's not part of the grammar so it has to be tacked on, like if python type hinting had to be done via decorators. I know ruby recently adopted some kind of native type hinting thing, but it's in a separate file, right? Like adding typescript hints onto js code? I don't like that either, it's just going to rot. I haven't been following this closely though, so maybe I'll be pleasantly surprised there. |