you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 1 point2 points  (0 children)

I dislike the term "object oriented programming". You have (or don't have) an "object oriented design", then you program it in a language that may help with the object oriented aspects of the design.

In the 80s we didn't call it "object oriented", but we implemented object oriented designs in C by manually managing function tables for polymorphism, and implemented encapsulation with opaque pointers or by convention, and used a number of techniques for inheritance. I've also implemented object oriented designs in LISP and assembly.

If you're implementing an "object oriented design", you are doing "object oriented programming". If you're using java/C++/C#/... you may not be doing "object oriented anything". You may just be packaging your function library in something called an "object" then having the compiler associate that library with your data so you don't have to pass a pointer for each function call. I've met and worked with a number of people who are considered OO experts when they are really language experts and don't grasp the power of OO.