Ian Bicking: the old part of his blog

Ruby python power comment 000

At last, about OO. Just to say that I really don't care if a language is 100% OO, whatever that might mean.

I care a lot. For instance, if Python classes were not objects (but syntactic constructs or something, like in Java) that would be awful. If I had to worry about boxing, that would be awful. If Python isn't 100% class based, no problem. Smart OO programmers know that OO is not the same thing as classes. Python is 100% object based, and that's really really important. IMHO, that makes it substantially more OO than Java.

Comment on Re: Updates
by Ian Bicking

Comments:

Well, my point was more about: what does it add to get the "100% OO" label ? IMHO, nothing ! Even more: "100% OO" might means (and apparently mean) different things to different people.

I really don't care about the label ! But I do care about the language coherency ... In Python everything you manipulate is seen as object (at least syntacticaly) and that's enough for me. But if someone feels it is not enough to be "100% OO", well, he might be right, but I don't care ! That's all I wanted to say ...

# anonymous

Ruby is 102% OO then.

# anonymous

Examples please?

# Mark

http://www.insula.cz/dali/material/rubycl/RubyIOClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyExceptionClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyDataClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyCoreClasses.jpg

The entire language was built from the ground up using OOP concepts. IMHO that makes it more oop than just about anything else. Every aspect of the language can be manipulated including the object "Class" which can be manipulated on the fly as it's created.

It makes the language very easy to learn because so much of the language is polymorphic. Got a file handle, try the put method. Got a standard out handle, try the put method. Got a network socket, try the put method. . . . you get the idea. Working with ruby I feel like I need less of a reference than other languages. Once I get used to a particular class hierarchy I understand that most of the inherited methods are available for all classes in that tree.

I had a python stint and really liked the language, but feel that Ruby code is more expressive. I know that is cosmetic or semmantic which you seem to be trying to avoid. I think if I were defending python I would avoid them as well. :) In all seriousness tho, python is great . . . ruby is great. It's all about enjoying what you do and if python makes you happier than ruby then that's what you should do.

# awksedgreep

http://www.insula.cz/dali/material/rubycl/RubyIOClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyExceptionClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyDataClasses.jpg http://www.insula.cz/dali/material/rubycl/RubyCoreClasses.jpg

The entire language was built from the ground up using OOP concepts. IMHO that makes it more oop than just about anything else. Every aspect of the language can be manipulated including the object "Class" which can be manipulated on the fly as it's created.

It makes the language very easy to learn because so much of the language is polymorphic. Got a file handle, try the put method. Got a standard out handle, try the put method. Got a network socket, try the put method. . . . you get the idea. Working with ruby I feel like I need less of a reference than other languages. Once I get used to a particular class hierarchy I understand that most of the inherited methods are available for all classes in that tree.

I had a python stint and really liked the language, but feel that Ruby code is more expressive. I know that is cosmetic or semmantic which you seem to be trying to avoid. I think if I were defending python I would avoid them as well. :) In all seriousness tho, python is great . . . ruby is great. It's all about enjoying what you do and if python makes you happier than ruby then that's what you should do.

# awksedgreep