This is the sort of “Ruby is weird” stuff that I love about Ruby.
Ruby is what I might call an “object maximalist” language…it tries to take the concept of everything-is-an-object to the nth degree, and thus very few “keywords” are indeed language constructs but are instead simply methods on objects. This means it’s fairly trivial to invent complex dialects of Ruby which almost feel like a new language. Again, it can get weird and it’s why some folks don’t like it. They might prefer a language where it’s hard to invent dialects and there’s very little metaprogramming possible, so that everyone’s code looks similar and it’s simple from a syntax standpoint. I personally find these sorts of languages very boring. There’s a reason I don’t write applications in Go, for example. But again, I understand why others might!
They might prefer a language where it’s hard to invent dialects and there’s very little metaprogramming possible, so that everyone’s code looks similar and it’s simple from a syntax standpoint. I personally find these sorts of languages very boring.
I mean, writing languages with lots of metaprogramming is fun. But reading them is often less so, at least if you’re trying to accomplish something specific. Also it’s very easy for the invented dialects to become incompatible with one another. Basically everyone should have to write in boring languages except me.
This is the sort of “Ruby is weird” stuff that I love about Ruby.
Ruby is what I might call an “object maximalist” language…it tries to take the concept of everything-is-an-object to the nth degree, and thus very few “keywords” are indeed language constructs but are instead simply methods on objects. This means it’s fairly trivial to invent complex dialects of Ruby which almost feel like a new language. Again, it can get weird and it’s why some folks don’t like it. They might prefer a language where it’s hard to invent dialects and there’s very little metaprogramming possible, so that everyone’s code looks similar and it’s simple from a syntax standpoint. I personally find these sorts of languages very boring. There’s a reason I don’t write applications in Go, for example. But again, I understand why others might!
Thanks zverok for the great writeup on this!
I mean, writing languages with lots of metaprogramming is fun. But reading them is often less so, at least if you’re trying to accomplish something specific. Also it’s very easy for the invented dialects to become incompatible with one another. Basically everyone should have to write in boring languages except me.