Menu

all objects

Mark Rosenblitt-Janssen

"All objects" (from front page) is perhaps a bit of a misnomer. The
[epistemology] of the OS calls for 5 different, base object-types, each with
their own API. These may derive from a common base, offering services such as
getID,

The traditional "API" of objects is completely wrong. If you want
encapsulation, you don't have an API at all. So Singularity and the [GOOP]
standardize "API"s into +/- 5 object types. Programmers can derive from these
and specialize with their own API, but this is shunned, as the architecture
builds wisdom and re-useability by constraining the freedom of objects. Each
type of object has a keyword and must conform to a minimal API.

  • data : basic objects which do not send or receive data, but simply run ("strings", numeric cells, etc.). These are represented as rectangular forms in [coordinate space]. These are data , but are called objects here.
  • class : [standard objects], mentioned in the [GOOP], needing to bring data in and out, using or processing it in some cognitively-complete, simple fashion. These are represented as spheres.
  • container : [container objects], adding indexing, containment, and possibly others. These are spheres with sub-objects within them.
  • number : [numeric objects], which have standard math operators and comparisons.
  • self : (the Rule of Four) [self objects] (thanks Python!), which can inspect other objects and access their data. These might be octahedrons.
  • hardware : (the -1) hardware objects "objects". These are just named components that can be queried ("?", or HARDDISK(GETID).), read or written to. Cannot be cloned or run.

The first class type has a run command, the hardware type either sits and
waits for input and produces output when instantiated.

[STUB]...Four dimensions of object interaction influence/pressure (will: a
request to process (or modulate?) that doesn't violate any constraint),
feeding (an agreement by design, single parameter), law and control
(government: set of rules made by the app written as contract or inside the
function/object), reactions to external events:

  • influence: Hierarchies, through inheritance of type
  • processing: Parameters, taking direct inputs
  • in/out, modulating of functions, and the direct input of standard objects.
  • list in/out, taking a list of homogeneous (simpler) types.
  • list in/out, MapObject, returning a same-length list, transformed by the MapObject at each element.

All objects take simpler types than the object themselves.


Related

Wiki: GOOP
Wiki: container objects
Wiki: coordinate space
Wiki: epistemology
Wiki: numeric objects
Wiki: self objects
Wiki: standard objects