Timeline for Criteria for a language to be considered "object oriented"
Current License: CC BY-SA 3.0
16 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jun 16, 2016 at 15:15 | comment | added | Jerry Coffin | @PieterB: No, not really. Despite abuse, Java does support the four "pillars" of object orientation. I'm tempted to paraphrase Dijkstra, and say: "Java is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums." That's accurate to the extent that it has, indeed, created generations of "coding bums", but wrong in claiming that it has carried anything through to (anything approaching) perfection. | |
| Jun 16, 2016 at 14:57 | comment | added | Pieter B | If 90% of the Java production code I see is: non-modular, exposes everything left and right, doesn't have a hierarchy to speak off and abstraction is the thing abstracted away. Does that make Java a non-OO language? | |
| S Jun 16, 2016 at 13:17 | history | suggested | Kromster | CC BY-SA 3.0 | Added focus to items and removed duplication |
| Jun 16, 2016 at 12:11 | review | Suggested edits | |||
| S Jun 16, 2016 at 13:17 | |||||
| Oct 25, 2013 at 21:34 | comment | added | ChuckCottrill | This also has a comment about OO being presented as the final model (programmers.stackexchange.com/questions/141329/…) | |
| Oct 25, 2013 at 21:33 | comment | added | ChuckCottrill | Since one should favor composition over inheritance (stackoverflow.com/questions/49002/…), encapsulation (and namespace) are probably the biggest concerns. | |
| Mar 20, 2012 at 10:42 | vote | accept | nist | ||
| Mar 19, 2012 at 20:03 | comment | added | Jerry Coffin | @DeadMG: Actually, there's quite a bit more than that, such as directly expression inheritance vs. embedding. | |
| Mar 19, 2012 at 19:50 | comment | added | DeadMG | @JerryCoffin: The only difference between doing that in C and inheritance in C++ is that in C, you have to make an explicit cast, and in C++, you don't. | |
| Mar 19, 2012 at 19:22 | comment | added | Jerry Coffin | @DeadMG: That's not (even close to) direct support for expressing a hierarchy of abstractions. It's nearly a perfect example of sufficient flexibility to simulate what's needed without supporting it directly. | |
| Mar 19, 2012 at 18:57 | comment | added | Michael K | @DeadMG I think the implication is support for object hierarchy. | |
| Mar 19, 2012 at 18:52 | comment | added | DeadMG | It's not true that C does not provide direct support for hierarchy- it actually does. The C Standard specifies that a pointer to a struct may be converted to a pointer to it's first element by simply casting the pointer- which is hierarchical. | |
| Mar 19, 2012 at 18:26 | comment | added | Giorgio | I deleted my question because after reading your answer I realised you state that encapsulation is a requirement, but not a feature that is unique to OO. Since you have answered, I repeat my question: I was doubting whether encapsulation identifies OO, since it is also present in procedural and functional languages. | |
| Mar 19, 2012 at 18:20 | comment | added | Jerry Coffin | @Giorgio: No, it doesn't -- not by itself. You need direct support for all four of those for object orientation. Any one by itself doesn't work. Ada 83 (for one example) supports three of the four (all but hierarchy). That's enough that it's typically called "object based", but not "object oriented". | |
| Mar 19, 2012 at 18:15 | history | edited | Jerry Coffin | CC BY-SA 3.0 | added 401 characters in body |
| Mar 19, 2012 at 18:09 | history | answered | Jerry Coffin | CC BY-SA 3.0 |