I don't think most people simply "accidentally grok" or use Smalltalk, Lisp or Raku; therefore I consider most people don't have what takes to grok Ruby either.
Oh please, Ruby is not some arcane language. It's really not all that different from Python, JavaScript, Java and C# once you get used to your dev environment. Those languages alone cover way over half all the developers.
People here are acting Ruby is anywhere on the same level of difficulty for a regular high-level OOP developer as C++ or Haskell.
> It's really not all that different from Python, JavaScript, Java and C#
I think that being able to dynamically replace behavior from almost anything at any point in your program is pretty much very different from Python, Java and C#.
The only other mainstream language with this capacity is Erlang, and Erlang is not exactly what I would call mainstream language.
And you believe that Ruby both does not make it easy to learn this concept and makes aggressive use of this concept?
I believe you're severally overestimating the impact and importance of one quirk when many developers are picking up wildly differing languages and decently successful at it all the time.
> I think that being able to dynamically replace behavior from almost anything at any point in your program is pretty much very different from Python, Java and C#.
Sure, but it's a very popular language that puts the ability to modify behavior at run-time front and center. It's not like Ruby is special in that regard.
I don't think most people simply "accidentally grok" or use Smalltalk, Lisp or Raku; therefore I consider most people don't have what takes to grok Ruby either.