Lint-Trap 3/3/01: Objects in Space


Objects in Space


Another damn strange dream had me up at 4:30 AM this morning. This one is a real dilly! And I defy anyone to find this in a dream interpretation book!

The overall theme of the dream was very pleasant. I made my home on a large space ship with thousands of other people. We would land on a planet and stay there for a year or two, exchanging goods and technology. A lot of what we exchanged was knowledge, which is why we stayed as long as we did.

We were stopped on a very beautiful planet. Great natural beauty, beautiful cities, and healthy, happy people. When talking to them, however, it quickly became clear that they had a very different approach to their possessions and to the material world than I did.

There was a sense in which they really had no possessions, but rather a network of agreements with manufacturers to allow them to use an instance of their product. These agreements were continual and ongoing, unlike our view of property where, after we buy it, typically the manufacturer has no involvement with it any more.

The remarkable thing is that the products themselves adapted to the particular circumstances of their use. Part of this ongoing relationship between the user and the manufacturer was that the user's needs at each moment were made known to the manufacturer, who instantly modified the product appropriately.

The example I was given was a coat. If I want a 'London Fog' coat, I make an agreement with London Fog and pay them money. And I have something that looks like a coat. But the coat adapts--if it's cold, it may develop a fur lining, while if it's raining it may be more like a raincoat. This adapation is controlled by the manufacturer. If coat styles change, everyone's coat changes to match the style.

So the society is knit together with this web of ongoing adaptive realtionships between manufacturer and consumer. My experience in the dream was awe at how exciting this idea was, and how wonderful it would be to live in such a place.

I asked my host whether he could teach me how to live on the planet. He said "I could teach your children, but not you. This needs to be learned when you are young." About now I woke up.

In the dream, I was conscious of the relationship between the objects people used on this planet, and the programming idea of objects and classes. For those who are not programmers, please bear with me while I try to give a sense of what programming objects are all about.

When computers started, information tended to be put into the computer in one of a very limited number of forms--integers (counting numbers), floating point numbers (measured quantities), and text. For example, if you had a position on a plane, you would have two coordinates, (x,y), to represent it. Everyone who used this point would access these coordinates.

As time went on, people realized that some things we manipulate in computers have a meaning independent of the way they are represented. For example, perhaps we would like to change our representation of a point to use polar coordinates. If we made a change like that in the old style of programming, we would have to change every place in the program that referred to the point.

So thie idea of an object was born. You can define a class of objects (for example, points). And then you define methods as part of this class to manipulate the properties of these objects. So, for points, you could get the rectangular coordinates of the point, get the polar coordinates of the point, change the position of the point, etc.

Finally, each particular point, or object, is an instance of the class of points. And if we want to add some properties of points (for example, give each point a color) we can do so by extending the class definition for points. The program that refers to points need not change.

So it's perfectly consistent on this planet of my dreams that you should pay for an object of class coat, which allows you to make certain calls on it to modify its characteristics or color. And that things like style are 'inherited' (another technical term, in fact) from the definiton of the class coat.

I've not always been a fan of object-oriented programming. It was greatly oversold, and such programs, while often easier to write and maintain, can be 10x or worse slower than programs written in more conventional languages. Perhaps the message to me from this dream is that there is more benefit in using objects than I'd realized.

I'd sure like one of those coats, for example...

Thank you for reading.

Copyright © 2001 Pete Stevens. All rights reserved.