J
Jeff Schwab
Claudio said:Do you honestly think that a vague and basically content-free statement like
this will serve to inform or sway anyone? I'm assuming you're planning to
address non-morons, and they're not likely to have a positive reaction to being
fed a contrived oversimplification. And if you are planning to address morons,
the best you can hope for is blank stare.
Claudio, you sweet talker! I disagree that this statement is "basically
content-free." There certainly is a limit to what will fit comfortably
into a line and a half of English text; I think the above sentence does
a decent first-pass at conveying the gist of OOP.
From the "Dictionary of Object Technology":
object-oriented programming (OOP):
(n) any application-specific programming resulting in programs that consist of
collections of collaborating objects which have a unique identity, encapsulate
properties and operations, communicate via message passing, and are instances
of classes related by inheritance, polymorphism, and dynamic binding [Booch,
Firesmith]
I'm not crazy about this definition for a few reasons (one being the use of the
term "message passing", another being the classification of dynamic binding as
a relation), but at least it has content and doesn't put the reader in a
catatonic state.
That same dictionary also has the following entry:
object-orientation (OO):
(adj) 1. (a) the paradigm that uses objects with identity that encapsulates
properties and operations, message passing, classes, inheritance, polymorphism,
and dynamic binding to develop solutions that model problem domains.
[Firesmith, Lorenz] (b) any technique based on the concepts of object, class,
instance, and inheritance. [Jacobson] 2. the use of objects as the atoms of
modeling. [Coleman]
Again, not ideal, but it conveys something meaningful.
No, those definitions convey almost nothing meaningful to someone who is
not already familiar with OOP. They define OOP in terms of its own
terms and artifacts. They may be a useful for philosophical discussions
among OOP experts, but they're certainly not a good way to get the
"gist" across to the uninitiated.
The "gist", as you put it,
I didn't choose that word, the OP did.
is that the shorter and more generalized you make
your statement, the more meaningless it will be. Meaningless slogans only work
if you're a politician or a third-rate marketeer trying to sell a commodity to
the lowest common denominator.
I don't believe it's a meaningless slogan. For the record, I have no
particular interest in pushing OOP or any other specific design technique.