The "puts" and "gets" functions (like write or print and read functions) can be called like a procedure can. No object needs to be referenced. That is just one example of why Ruby is a hybrid language and not a "pure OOP" language.
While reading about Ruby I was extremely skeptical about the claim that "Ruby is a pure object oriented language". I thought that maybe some misinformed advocates of the language thought this - that is usually always the case (just as folks think Delphi is true pure OOP). However I was baffled that it wasn't some advocate lunatic that was saying this - it was the developer of the language that believed this and many of the major Ruby developers. Some people are missing the point that Ruby really is a hybrid and not some purist language. The fact that it is a hybrid is what makes it a real world language used in real world situations.
I think the author of Ruby and the Ruby advocates out there should stop being a purist and admit to and realize the fact that purism will only detract people from using Ruby. I am not saying that I would skip the language and pass it off as a lie, just because the language creator doesn't have a clue as to what he is talking about with OO purism - since a lot of geniuses don't (including Anders H. from Borland) - but it did turn me off a bit that they are pushing this OO purism nonsense.
I'm just not a fan of people who try to push purism and it is just one turn off about the language and its advocates. Again, this doesn't mean Ruby is now bad, just because people are misinformed. A lot of people are misinformed.
Another extremely "dumbfounded" statement from the Ruby-lang website is:
"Ruby is the interpreted scripting language for quick and easy object-oriented programming".
Oh, since when was programming easy? PHP is easy too, and so is Pascal, and C, and Ada, and Java, and Python. And programming is now QUICK too. QUICK AND EASY. Yes, I'm sure the world has been saved by the Gods - the Ruby Gods who create complex systems QUICKLY and EASILY.
But hey, I guess PHP is EASY and QUICK too:
print "hello";
And hey, I guess Pascal is EASY and QUICK too:
write('hello');
Anyone who thinks that programming is "easy" because of this new "language" you are using that solves all your problems (magically) should not be trusted or taken seriously.
I stress once more that this does not in any way mean that Ruby isn't useful. I'm just being hard on Ruby to make an exaggerated point here. Of course it is useful and the marketing hype or misinformation behind it doesn't detract from its usefulness. A lot of genius programmers or marketers don't have complete intelligence - their brains are focused on one area (such as pure OOP) and they are missing other parts of their brain (such as the beauty of having gets and puts not tied to an instance). I call this Pargence when folks focus on one true purist way rather than accepting that it isn't a perfect one true way. Purisms are partially intelligent because more fully intelligent folks know true purist perfect things don't exist. It's all about balance and compromise.
|