Jump to content

Meta Classes in ObjectWiki

From WikiWorld

===Conclusions:

=

In ObjectWiki we make no distinction between instances, classes and meta-classes. Everything is an object and we just leave it at that. An object can inherit from any object. In other words you can use any existing object as a model for making a new object.


===Discussion:

=

====Exercise: Define a small, basic set of objects from which all other objects can be defined.

==

An object is a collection of attribute value pairs, and an object class is a collection of attributes that an object of that class may contain. How do you define the object attribute without first knowing what an attribute is? This question brings me to the conclusion that there is a small set of object definitions that must be assumed before you can begin using them to build more complex objects. –DavidSiegel

====What Is The Infinite Regress Of Objects And Classes?

==

from [[|http://www.cyberdyne-object-sys.com/oofaq2/body/basics.htm Object Basics]]

In the authors opinion, a myth. The story goes an object is an instance of a class (Meta-Object), a class is an instance of a Meta-Class, which must also be an instance of a Meta-Meta-Class, which must also be an instance of a Meta- Meta-Meta-Class, ... Closure can be achieved with an instance-of loop, as with a Meta-Class being an instance of itself or with a "Meta-Class - Meta-Class class" instance-of loop (as in Smalltalk).

Let us start simply. The most basic attribute of an object is it's value.

In ObjectWiki the most basic Object is a Character. Characters represent themselves, they include a, b, c, ... z, 0, 1, 2, ... 9, ====, @, ... /. There are three subclasses of characters, AlphabeticCharacter, Numeric, and Special.

==

Next Strings represent a list of characters. There are there main sub classes of Words, AlphaNumeric, and Numbers.

Stings and numbers in ObjectWiki are ordinal objects. That means they represent themselves. The Word "dog" has the value "dog". The Number 123 has the value 123.

Teaching people about classes, meta-classes and instances is almost useless. I gave that up. In ObjectWiki we make no distinction between instances, classes and meta-classes. Everything is an object and we just leave it at that. An object can inherit from any object. In other words you can use any existing object as a model for making a new object.

These OrdinalObjects are built in to ObjectWiki. We don't need to say:

====class: WikiObject

==

====class: Word

==

====name: dog

==

====value: dog

==

since strings simply represent themselves.