OOP and Avatars
May 14, 1998
by Peter Small
After a heated discussion on Direct-L (April 1998) as to the nature of OOPS it became evident that the various contributors were each seeing OOPS in a different light. Zav (Alex Zavatone) has asked each of us to write a short piece to elucidate our individual interpretations. Below is an "off the cuff" explanation into which I've merged adaptations from some of the sections of my forthcoming books.
My interpretation of OOPS probably seems unconventional to classical programmers as I don't come from a programming background. My original technical background has been that of a systems control engineer, designing servo mechanisms for guided weaponry. This led to a life long interest in the study of biological and social systems: in particular the evolution of self regulating mechanisms.
When I first encountered Lingo, I was immediately struck by the similarity between Lingo list structures and the arrangement and function of genes in a genome. When I then went on to OOPS, the biological metaphor was reinforced when I saw the way in which objects could be created and arranged to communicate with each other. This is exactly analogous to the way in which biological systems are formed and structured.
For me, this sudden understanding (and the understanding of OOPS does come suddenly when the concept clicks into place) had nothing to do with programming per se, it was about a conceptual framework for understanding the way in which complex systems can be visualized and created.
In an object oriented framework, all systems can be reduced to an assortment of isolated black boxes which have specific functions. These black boxes can communicate with each other by means of messages. Remarkably, this system of black boxes can exist at several different levels of organization. For instance, a system can be seen to consist of a relatively few black boxes, but, when you look inside each black box, it too can be seen to consist of communicating black boxes. This process can be repeated through various levels of hierarchy until the final modules are no more than elementary functions (simple blocks of code).
As you reduce a complex system in this way, down to its lowest level of elementary functions, you realize that somewhere along the way you have missed something. The elementary components by themselves are insufficient to explain the complex behavior observed in the system as a whole. It is this enigmatic, group functioning of objects to produce more than the sum of its parts, which is the essence of OOPS.
Conversely, this phenomenon also works in reverse. Small elementary functions and objects can be added together to gradually build up a complex system. Without conscious design intention, such systems seem to mysteriously develop a life of their own. They exhibit complex behavior; often resulting in performance which goes beyond the designer's original conception.
It is in the understanding and control of this process which can lead to original programming creativity. It is also the way forward for taking multimedia beyond banalities. More important, from a commercial standpoint, it is the only viable way to create innovative product and services for the Internet and World Wide Web.
About black boxes
The black box is a conceptual trick which comes from physics. It allows you to discuss and experiment on an entity without knowing exactly what it is or how it works. All you can know about a black box is what you can observe from its responses to messages and external stimuli.Lingo allows you to build black boxes (objects) in the RAM space of your computer. Of course, to you, the constructor, they are not black boxes at all because you know what is inside them and how they work. But, to the rest of the system (and your own program) they are unfathomable mysteries which give out specific responses and reactions to messages.
More importantly though, by being able to view your own programming as a system of communicating black boxes you can escape from syntactical detail and abstract away at any time to thehigher levels of a program's overall purposes and goals. This abstracting away from detail can occur at any level of a program's hierarchy.
If you are working in a low level language you can format your own RAM space, you can format the inside of your own black boxes and construct your own messaging protocols. Unfortunately, you have to be so dedicated to programming to have sufficient skill to do this effectively that you have little time left to be able to think about what you want your system of black boxes to do.
Director saves you all the necessity of having to have dedicated programming ability, by formatting an area of RAM for you and providing you with a high level programming language so that you can construct black boxes and their innards fairly easily. This convenience allows you to spend most of your time on the more important intangible stuff that happens outside of the black boxes.
The formatting provided in the Director environment ensures that any messages sent by the system, a human user or one of the black boxes reaches it's correct destination. As a programmer, you have control as to what routes these messages take and you can make the messages, their paths and destinations dependent upon certain conditions or events.
Director (Lingo) is such that it allows your black box (a Lingo object) to have certain important characteristics:
- It can receive messages
- It can send messages
- It can pass messages on if it doesn't understand them
- It can have a private internal memory which can have any order of complexity
- It can access global information
- It can be made to respond in any of an almost infinite number of ways to the messages sent to it.
- It can live in the memory of another black box.
- It can have other black boxes in its own memory.
- It can exist in RAM independently of its parent script and the movie giving birth to it.
Once the concept of OOPS clicks, you can then think outside of the metaphors of the Director environment and above the detail of the programming language. You will be free to be able to concentrate your mind on the nebulous world of black box interactions. Intellectually, this is where it really happens: at the conceptual level.
Once you can think in terms of black boxes and message passing, you can then take the critical next step of merging the environment of your world with that of the Internet. This is where we are all moving to, some faster than others.
Up till now, most Director projects have been designed as isolated self-contained environments. The new range of Net Xtras (from Macromedia and other sources) is opening up Director formatted RAM space to the external world. To every user of a Director product, the World Wide Web can now be viewed as a giant hard disk; every Web page is potentially another member in a gargantuan cast window.
In the world of avatars, this black box concept is taken even further. Not only do Director movies contain black boxes, the movies become black boxes themselves. These Director movie black boxes can move in and out of RAM; they can move across the Internet: they can reside on the Web; they are connected together by message paths. More bizarrely, humans can also be treated as black boxes: by other black boxes; by the system; by other humans. In the exotic world of avatars everything is black boxes: which interact within a complex informational environment in the landscape of the Internet. If you like weird then avatar technology is for you.
Those who's heads are really into OOPS are free, not only participate in the nebulous, exotic world which is now beginning to take shape on the Internet, but, to be amongst the pioneers who'll shape its destiny.
The conventional use of OOPS
It is the reduction of a complex system into discreet modules which lies at the heart of conventional OOPS. However, its use has largely been confined to top down designs where the ability to split complex systems into separate modules has made it an ideal programming strategy to use for large systems. It allows the design to be divided up between a number of independent, separated groups.With large projects, multiple design groups and the inevitability of high staff turnover during development, there is a need to regulate and format the programming techniques and procedures. This has encumbered conventional OOPS with all kinds of standardization, rules and conventions.
Unrestricted OOPS has no such limitations. The methods by which a black box implements its procedures is unimportant; all that matters is how black boxes respond to particular messages. The only rule is that there are no rules - which greatly increases the power and versatility of OOPS.
The future use of OOPS
The original development of OOPS, as a programming strategy for large systems, saw projects as being carefully planned and fully specified from the outset. However, the speed with which technology is now evolving and the immense complexity needed for a system to be able to cope and survive in highly changeable competitive environments is causing pre-planning to become a non viable option.Any pre-planned system today, is liable to be out of date long before it comes into operation. At best, it would survive for only a short period of time before advancing technology, rapidly changing environments and competition cause it to become redundant.
The need now is for systems which are highly flexible and self adapting; able to grow, change and adjust without major modification. This entails using the techniques of biological systems where the controlling mechanisms are not within the structures themselves, but, in the feedback pathways of the messaging infrastructure - the intangible area which conceals the enigmatic and unexplainable qualities of complex systems.
Such systems cannot be designed: they have to evolve. They have to grow as bottom up developments which morh into different forms and shapes as they cope with and adapt to a constantly changing competitive landscape. This is the new future for object oriented systems. It is also the underlying principle of A-Life avatar technology.
Unlike the popular conception of avatars, avatar systems have no definite form or shape. They exist as networks of objects which re-configure on the fly, evolve, learn and adapt. They enhance and promote group activity. They provide intelligent interfaces to the Internet. They exist as systems which connect people together for mutual co-operation and communication; they exist as exotic extensions to a person's natural abilities. They are the epitome of object oriented programming systems.
That generalizes my personal interpretation of OOPS. The basics are in "Lingo Sorcery" (a new Internet version will be out later this year). The theory is in my forthcoming book "Magical A-Life Avatars". The practical applications can be found on the avatar listserve. Details at http://www.avatarnets.com
Copyright 1997-2024, Director Online. Article content copyright by respective authors.