The Grandeur of The Absolute
From the time – probably millenia
ago – when humans first learnt to think ahead of their animal
neighbours, we've been able to make certain statements that
(presumably) animals can never conceive – abstract generalities.
So for example, a baby calf can recognize its mother cow with a greater unerring precision than a human baby's, yet when the human baby grows up, it can make distinctions out of the reach of our bovine brethren: eg
Now I have a conjecture, viz. that grand generalities have some hormonal trigger for making us feel elated (a grande-generality-pheromone maybe?) so that statements like
And from this addiction to this feel-good-factor, people then start trying (as with all addictions) more and more desperately to create grander and grander generalities. In a few cases (like the ones cited above) they may actually succeed and so Newton, Einstein, Church and Turing justifiably become famous.
Unfortunately these are the exceptions. In the vast majority of cases, the quest for generalities only produces rubbish. So lets see how the…
So for example, a baby calf can recognize its mother cow with a greater unerring precision than a human baby's, yet when the human baby grows up, it can make distinctions out of the reach of our bovine brethren: eg
- my mother vs motherhood
- motherhood vs love
- cheap love poetry vs hi-class love poetry
- etc
dealing with abstractions as though they were concrete.
Now I have a conjecture, viz. that grand generalities have some hormonal trigger for making us feel elated (a grande-generality-pheromone maybe?) so that statements like
- Nothing in the universe can go faster than the speed of light
- Every pair of bodies in the universe attract each other according to a trivial-to-state mathematical law irrespective of their distance or relative size
- Anything that can be computed by any computer whatever (invented or yet to be invented) can be computed by a Turing machine
And from this addiction to this feel-good-factor, people then start trying (as with all addictions) more and more desperately to create grander and grander generalities. In a few cases (like the ones cited above) they may actually succeed and so Newton, Einstein, Church and Turing justifiably become famous.
Unfortunately these are the exceptions. In the vast majority of cases, the quest for generalities only produces rubbish. So lets see how the…
The Philosophy of OO
fares in this regard. OO
starts off its philosophical sojourn with the dogma:
The subtlety of the problem has tripped many very smart people so needs to be stated carefully:
In short:
Everything
can be modeled as a class
Everything is an object
I will start with a variation that is slightly less nonsensical but easier to debunkEverything can be modeled as a class
Now if we start looking at the
justifications of this statement we would find certain
methodological directives such as
Identify the nouns in the use-case and make them classes
In itself this is – as a
methodology – not objectionable. So for example
if we are presented with the standard example of a customer
coming to an ATM and making a transaction, this methodology
tells us that it may be a good idea to make customer
and ATM into classes – so far so good.
And what about transaction?
Yes we could make it into a class also, but as we shall see, blanket-adding
the set of abstract nouns into the set of common nouns as
class-ifiable objects gets us into trouble.
So for example, if the use-case
contained a statement like:
In order to safeguard
customer-satisfaction, the ATM's performance shall not
degrade beyond 3 seconds response time.
So now – according to our
methodology – we need to make performance, response-time and
even customer-satisfaction(!!) into classes.
What's gone wrong?
Some properties are directly
reify-able, model-able, whereas others often the most
crucial ones, can only be emergent and not directly
reified within the system.
This is a cornerstone of
computer science. Its most famous form is:
- The halting problem is unsolvable – Turing
Other more general though less
well-known analogues are:
- All non-trivial questions (about programs) are generally unsolvable – Rice theorem
- No (reasonably powerful) system can contain its own proofs – Gödel's theorem
- Gödel's phenomenon is natural and widespread rather than pathological and unusual – Chaitin's information-theoretic version of Gödel
The subtlety of the problem has tripped many very smart people so needs to be stated carefully:
- To be useful, a system would have to model enough of real-world data
- To be executable, a system cannot model all the relevant data
- This does not apply to toys (note the 'power' requirement in Gödel's theorem)
In short:
Everything
can be modeled as a class
is Grand Bunkum
Now since I am in the process of making (grand general) broadsides, let me say that similar things can be said for the logic and the functional paradigms as well
Also the "Everything is an object" needs separate handling. I'll write about it when I feel well enough to handle more heavy-duty bullshit…
For now: Some earlier posts (not quite complete) on OOOOO-nonsense: 1, 2, 3
Also the "Everything is an object" needs separate handling. I'll write about it when I feel well enough to handle more heavy-duty bullshit…
For now: Some earlier posts (not quite complete) on OOOOO-nonsense: 1, 2, 3
Sir please write about "Everything is an object".
ReplyDelete