As you will no doubt appreciate, the
process of thinking is no simple matter; thinking about thinking is
especially complicated.
Normally we do not have to think about the way we think; the brain
seems quite capable of working out its own strategy. However, for
many purposes in life it is quite beneficial to work out before hand
the best way to think about a situation or solve a problem.
To over simplify, we can consider the brain to choose between two
possible strategies when a problem presents itself - an object
oriented strategy or a structured strategy. Which strategy the brain
chooses is not necessarily a conscious decision process as the brain
seems to be able to make the appropriate choice between the two
automatically (in fact it is highly likely that the brain is capable
of using both strategies simultaneously).
In essence, the brain chooses to use an object oriented thinking
strategy when it is dealing with uncertainties or being creative and
a structured strategy when it is dealing with known facts or
organising a situation which has no important unknown variables.
The difference between structured thinking and object oriented
thinking can be examined by considering how one might design and plan
a project.
With structured thinking you would start by forming a skeleton
framework of an overall plan and, from that plan, work downwards to
sort out all the structural elements at an ever increasing level of
detail.
With object oriented thinking, you need have no fixed or definite
plan of the final structure, but, might start anywhere, building up a
structure from small self contained subsections which are fitted
together as you go along.
This difference between structured thinking and object oriented
thinking can be illustrated by considering the two writing strategies
of a historian and a creative novelist.
A historian would probably have full knowledge of all the subject
matter which will form the basis of the total content of the writing.
The historian might sub divide this available material into
categories such as date periods, economics, politics, war, social
conditions, etc.
Probably, the historian will use some form of outliner to divide and
sub divide all the available information into suitable hierarchically
structured sections; into these the historian can enter further
relevant facts and observations. This would be a sensible and
efficient method to proceed when writing an account of the history of
a particular period, with the structure and organization being
predetermined from the outset.
A creative novelist on the other hand would be unlikely to work out
the full details and structure of a novel before starting to write
the story; the novelist may have only the vaguest of ideas as to what
the content or even the outline is going to be when the writing
commences.
It is more likely that the novelist will begin by creating a
character and then imagining that character in a situation. As the
novelist visualizes how the character might react in the situation,
the character will be developed and fleshed out. New characters will
be introduced into the situation, who will react with the first
character in the novelist's imagination to trigger and initiate new
directions and events.
As the story proceeds, new situations, characters and developments
will be introduced and the resulting interactions within the
novelist's mind will be written down to produce the content of the
novel (many novelists have talked about this phenomenon of characters
in their novels seeming to develop a life of their own and for the
novel to take its own directions).
You will readily see that the historian is limited to the structure
and organization decided upon at the start of the project. The
novelist, by contrast, can develop the content in any conceivable
direction and build in all kinds and levels of complexity.
Object-oriented thinking is not technically difficult to understand,
it is just a matter of getting the conceptual framework to click into
place. As was mentioned at the beginning of "Lingo Sorcery",
creativity can be conceptualized as an OOPS process because you start
off with a few small constructs and progressively add to them as
inspiration and opportunity allow.
With structured thinking, the results are predictable. Using an
object oriented approach, the resulting creations can often be as
much of a surprise to the creator as to the people who admire the
creator's creativity.
Of course, thinking need not be (and seldom is) confined to a single
strategy. Object oriented thinking could lead to bizarre results if
left unrestrained. Usually an object oriented process will be
constrained, either by a limiting outline or from continual feedback,
which hold the wanderings of an object oriented design to within a
sensible but flexible envelope.
In its very general sense, object oriented thinking is about objects
reacting with each other and their environment. Interaction between
objects is facilitated by message paths which provide hierarchies and
precedence; allowing objects to communicate and send messages to one
another. The power of this modular system is that it can be
continually changed and extended to any degree of complexity and the
final complexity does not have to be visualized from the beginning:
it can just grow or evolve.
Also, unlike structural thinking, the complexity of the resultant
outcome of an object oriented structure need not have to be
understandable in its final stage; this allows the design of a
structure to become so complex that it can exceed the capacity of
even the designer to comprehend the final outcome.
The Internet and the World Wide Web are typical of the structures
which can evolve in an unrestrained object oriented environment.
Perhaps you can see how totally inappropriate it would be to design
products to exist in such an environment using a structured design
technique?
This is why object oriented techniques are essential to the design of
intelligent Web agents and Intranets. Their final form cannot be
visualized at an initial stage. They will have to evolve in a
changing and evolving environment to achieve a degree of complexity
which would be beyond the capabilities of any single designer to
foresee from the outset.
As was illustrated in "How God Makes God", biological structures
evolve in an object oriented fashion to adapt to their environments.
They grow and adapt by adding and mixing communicating modules at all
levels of complexity.
To see the power of object oriented design in action one has to look
no further than the examples of meiosis and metamorphosis in
nature.
Meiosis is the processes whereby two cells recombine their genetic
material to produce a genotype which is a mixture of the genes of the
two cells. This is how humans are formed at the time of conception,
when some of the genetic components of the father's sperm is mixed
with some of the genetic components of the mother's egg to produce an
unique individual from the resultant reconfiguration of the genetic
modules.
More dramatically, the results of re configuring organic modules can
be observed in the metamorphosis of invertebrates. An example of
which is the caterpillar, which re configures its component parts to
turn into a butterfly.
Cleverly designed object oriented programs can exhibit similar powers
of metamorphosis simply by re configuring message paths between
objects.
The ubiquitous nature of object oriented strategies and design is
only fully realized when you take into consideration that objects can
also be abstract concepts.
The [heuristic] strategy for creating wealth in HGMG can be
considered as a virtual object. This virtual object is made up from a
combination and hierarchy of other objects which consist of rules.
Reconfiguring the rule objects will change the nature of the virtual
strategy object.
In a sense, writing is a form of OOPS - with the words representing
objects. One message path links the objects together in their
sequential arrangement on the page and another meta path is
reconfigured by the brain to connect the words together in a
different arrangement for comprehension. Recombining words in
different ways along different message paths create new meanings.
The magic comes from realizing that a system of virtual objects need
not be rigid - objects can be re configured into completely new
configurations resulting in totally different sets of virtual objects
(simply by changing the pattern of the information paths and
links).
Object oriented thinking is about polymorphing structures, whose
shapes you can change at will - is a weird thing, both to describe
and to imagine.
[Index]
[Next - Object-oriented programming]
[Back - Objects in nature]
Peter Small August 1996
Email:
peter@petersmall.com
Version 1.00
©Copyright 1996 Peter Small