“Does anyone really know what “object oriented” means? Does the phrase signify anything, or are the words just strung together because of an historical misnomer? One thing is clear. No one understands what the phrase “object oriented” means when they first hear it. While it does appear to be a juxtaposition of two ordinary words, its meaning does not jump out at you.” Read it at CobolReport.
Object oriented programming is identified by the following characteristics:
* Identity
* Classification
* Polymorphism
* Inheritance
OK, so it’s not an intuitive phrase. It is well defined and widely understood. All you have to do is look.
What about Encapsulation? It is a standard part of the OOP concept wherever I have seen it discussed.
Speed’s not a OOP characteristic. But for “Encapsulation”, I think it’s the best single word to describe OOP overall nature.
Sorry ’bout that! I had only 4. Oh well, just trying to get the ball rolling…
Steve, I was referring to the previous poster’s name, not the noun. Although, now that you mention it, maybe I should let you drag me into a debate as to whether or not ‘Speed’ is actually an OOP design characteristic in some way, just for laughs…
The above article (not by me, I only submitted it) is interesting if you don’t know much about the history of OO or why it came about.
I thought it fasinating that the way it is used today and the purpose for which it was originally thought up are almost completely different. An OO programmer will think of a software object but the original idea was that the object maps directly to an object (or perhaps process) on the outside world, software objects do not do this.
I should perhaps point out though that the original article was aimed at legacy programmers who probably know more about the problems the author mentions.
You people didn’t even read the article. The author states that these same terms are the very reason why nobody really understands what Object Oriented means. Polymophism and Inheritance have nothing to do with OO, it is just an extention on classification. Classification and OO are two entirely distinct ideas on thier own, and they are at odds with eachother. What the author is saying is that the original theory beind OO has been lost, and has mostly been turned into a way to sytactically improve the writing of code mostly in the way of reducing the redundancy of code through inheritance and polymophism.
I thought that OOP was all about modeling things in terms of their state and behaviour.
But I like Component Based Design better.
Object oriented programming is identified by the following > characteristics:
>
>* Identity
Isn’t covered by classification?
>* Classification
This covers both the following two –
>* Polymorphism
>* Inheritance
but as the two are quite diverse, it is simpler to split them. This is so common now that it’s almost impossible to debunk.
You can add Abstraction to the list.
There’s also Encapsulation, (aka Data Hiding) which can be broken down into Cohesion and De-Coupling (i.e. Cohesion good, Coupling bad.)
I’m not sold on this article to be honest.
Where are the screen shots?!
The article is drivel. He cites a contradictory statement on what OO is from “one of the most popular works about object analysis” (unnamed), then goes on to commit worse crimes. On the first page of this overlong abomination, he equates OOP in the field of programming with “‘objective’ ‘value free’ science” in the field of science and “‘objective’ ‘Scientific Management'” in the field of business. RED ALERT!!! Some one who doesn’t know what he’s talking about ahead! “Objectivity” has nothing to do with “object oriented programming”!
If you can bear to read on, you will find that what he is really talking about is modeling, particularly of business processes. He seems upset that every is talking about OO (which relates to programming) rather than modeling, and he doesn’t understand that the two are separate processes. So rather than clarifying the situation, he makes it far muddier. I feel bad for the poor Cobol programmers who take this guy at his word because he’s published in a magazine; he must be an expert!
Rob Campbell
[email protected]
Drivel, yes, drivel so thick you could stick a fork in it. At one point, perhaps trying to sound impressive, he says, “Heisenberg’s uncertainty principle and Gödel’s incompleteness theorem showed that self-contained logical systems are doomed to be both unprovable and contradictory.” Heisenberg’s uncertainty principle is about the physical world, not logic, so that makes no sense for a start. And if by a logical system is “unprovable” he means “not able to prove its own logical consistency”, then yes, Gödel said that; but all logical systems are internally contradictory? That is sheer nonsense. All logical systems are illogical? WTF?! This guy should stop talking about things he doesn’t know about — including, I suspect, OO.
Georg Cantor and his principles of continuum and cardinality also belongs in this group. If you come to fully comprehend the implications of Godel’s and Cantor’s work when applied to a logical model of the universe that is based upon “crystallized mathematics” (i.e. physics), then you will become Enlightened.
Its almost funny, I remember the first line in a book I read once on OOAD and programming stated “Object Oriented means many things to different people”. I never realized how true that statement is until now. Its pretty amusing that a article from a COBOL magazine has raised this much debate.