Object oriented thinking

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