Puis vint l'Orienté-Objet
.....
Montée en Puissance
.....
Multimédia
.....
à la Pointe du progrès
.....
Incontournable
.....
Client-serveur
.....
Design Patterns
.....
Méthode
.....
Orienté <machin>
.....
(job) security through obscurity
.....
original intuitions: good stuff
(meta-level uniformity matters; modularity matters;
identity matters; structure matters; )
vs initial cruft (idiosyncrasies of the initial expression).
accumulated confusions:
between intension and extension,
between identity and structure,
between metastructure and structure,
between modularity and encapsulation,
etc.
more idiosyncrasies:
message-passing vs function calling; classes vs clones;
sequential vs parallel evaluation; etc.
really stupid beliefs:
that an order (program infrastructure) is necessarily reducible
to an order (class hierarchy).
.....
starts from nice (at the time) intuitions:
"everything is ``an object''";
expressed at first in very idiosyncratic ways;
then a tradition happens, and lots of cruft is added,
as the result of the usual try-and-select historical process.
then sanctify all the confused assertions into a religion,
despite the internal contradictions in traditional lore,
despite the growing contradictions between some of the cruft and
the good parts of original intuition,
despite the social context being different enough that many parts
of the original intuition are not adapted,
despite scientifical understanding having progressed
since the original intuition to the point that
most of it can be successfully analyzed with simple scientific techniques,
with the good stuff being separated from the bad stuff
The OO behavior is typically that of a major religion,
with its factions and sects, its main orthodoxies, etc.
The problem with it is refuse of questioning dogmas and tradition,
refuse to use rational thinking to analyze
refuse to take the advances of the original intuition
as relative to their time, and move beyond them,
refuse that science be able to explain it all,
both the technical contents and the historical events.
.....
Having seen (in scientific articles as well as at international symposiums)
how world-class computer scientists were subject to religious behavior
in their own field of knowledge (following the "OO" church),
I have no more illusion about the capacity of people
to enslave their mind in religions.
.....
Certainly, some people of talent have managed to achieve great things
while staying within the orthodoxy of the church;
however they did not do it thanks to the orthodoxy, but despite it!

OO is the paragon of ignorance-reuse.
Anything that one confusedly feels
but doesn't bother to try to correctly understand,
one calls "an object" or an attribute thereof.
That's OO.
Then one grows a mess of a semantically crappy system
around stupid assumptions that one never dares question.
That's OO.
Anything that roughly looks like a general law,
one just gives it a name,
and one ends up with lots of
gross approximations to actual laws,
that bring confusion instead of understanding.
That's OO.
OO is the reign of the ignorant over the brainwashed.
Even those who aren't completely ignorant or brainwashed
have to abide by the buzzwords,
or be doomed and excluded from the industry.
That's OO.

confusion
what's OO?
"everything is an object"
what's "everything"?
is the name of the object an object?
is the size of the universe an object?
is each transistor on each chip of the computer an object?
is the user an object?
Well, if "everything" already stands for "everything that's an object",
then that's a pretty useless statement.
And as far as describing an "OO" system goes,
that's the most that can be done.
You'll always find something that was not an object:
the comment, the class, the interpreter, the language, the CPU,
or whatelse.
If the slogan no more describes any given system,
but instead a process for building new systems,
then no existing "OO" system can claim to be "OO".
And then it sounds more like a call-for-reification!
Hence, the only systems that can honestly claim
they abide by that slogan
are reflective systems!

remains only encapsulation.
but encapsulation of what?
data? structures exist even in macro-assemblers like C!
code? in any self-respecting high-level languages,
there are first-class higher-order functions,
so code is a particular case of data,
and once you can encapsulate data, so can you do with code.
(now, few "OO" languages are either high-level or self-respecting).
semantic dispatch? now, there we are.
only, it's getting things all wrong:
it's a confusion of metalevel!
which might be ok in trivially typed dynamic languages
(CLOS, Smalltalk)
but not in any other language.

All in all, OO is but hype.
Now, there might be some good languages that are "OO".
but they won't be good because of the "OO", but despite it:
"OO" won't be their primary feature,
just a buzzword-compliant extension to a solid base,
or just a cheat to bring the buzzword into an otherwise good design.
Languages whose central feature is "OO" are forcibly as bad as "OO" itself:
they are empty languages with no design.