Sunday, May 22, 2005

The object storage - continued

The object storage has a few depths: 1. The data core - This provides the actual interface and implementation between the storage of the bytes (the PalmOS database or file stream) and the actual object design. It supports the ideas of a tree structure of objects and links, objects that point to data and data which points to multiple items. This indirection does mean that its slower but the flexability is just huge and allows to change the implementation in the future. 2. The dynamic core - This provides the thread and method functionality which adds the ability to connect code to data through methods. Each object can have methods which define functionality for it. From predefined methods like Open, Close, Read, Write, Move, Copy, Link and so on to custom methods like the window class has the Draw method. The programmers API does method calls, not direct function calls to the underlying data core. 3. Types - data has a common style which is known as the data type like windows, controls, layers, appointments, contacts, strings, numbers, bitmaps, resources, users and so on. Each type is an object just like any other object but it has methods which allow to syncronize between the type and its instances. So adding a new property to a type, adds the property to all instances. These methods are not defined per type but rather in the generic 'type' object. All types exist under the 'type' object so they automaticly get syncronization. So adding a opacity property to the window type means that all windows will have the opacity property and they also get the default value specified by the window type in which each window can override. The object storage is very simple and flexible which means that it can be used for nearly anything. Screens will be importing/exporting objects as XML so you will be able to export your document from Screens and move it to any OS and read it. I see the power in this and I am very happy with it. No, its not implemented yet and its taken me 3 years to get to this but the advantages I see with this design are just so worth it. As time goes by, you will see why.

1 comment:

Anonymous said...

Proof that patience is a virtue - great ideas are maturing...