Upgrading OOP
Upgrading OOP
Classification tree of objects is shown on the left side of the diagram. I'll call verticaly
oriented properties with the name classification bases. The right side of the diagram reflects
properties of cassification tree's elements.
Contents of classification bases replace informations in above named “... extends ...”
directives.The diagram shows proccess of propertie's inheritance by classification bases. Of
course, chosen classification bases are not static. It means that they can be replaced by any
other properties of relevant classes. By this kind of transformation, real data is not changed.
The only change is in visualization of that data. Right side visualization of inheritance and
propertie's data is updated accordingly to the choice of classification bases that make some
classificatin tree.
1
2. Migrating To Functional* Concept
Today's domination of imperative programming languages can't be denied. Imperative
languages are caracterized by executing line-by-line list of commands. Functional* approach
is relatively little used in programming today. In contrast to imperative languages, programs
in functional* languages represent some sort of big static formula. Variables in that big
formula can be mutualy depended. When altering one variable, other variables which
depend of altered variable, should change their value. Functional* language programs can
be compared to any x-office table calculators.
Use of mutualy depended properties (functional* model) can completely replace use
of methods known from imperative OOP languages. This statement is based on similarity of
today's general theories of knowledge to functional* programming languages. General
theories of knowledge (i.e. Type Theory) succeded to define Mathematics and other
sciences.
Functional* approach in OOP woud be in extending definition of properties, so they
can besides explicit objects, contain calculated data and filtered lists of objects from other
classes. Extended definition of properties would take arguments similar to these in this SQL
statement: “SELECT props FROM class WHERE condition”.
Proposed fuctional* approach is recommended to describe only dependance among
user's class properties. That recommendation brings a need for some event processor which
inserts, updates and removes database objects. This kind of implementation of dynamics is
just rough estimation of what can be already done today, so the future is yet to be seen.
*term “functional” covers mutualy linked
and automaticaly updated variables
2
profession
[ Medic :New
{ specialty [:String;];
};
Pilot :New
{ time driven [:Numeric;];
vehicle type
[ Airplane :New
{ engine type [:String;];
wing length [:Numeric;];
};
Helicopter :New;
Rocket :New
{ range distance [:Numeric;];
};
];
};
Programmer :New
{ language [:String;];
preoccupation [:String;];
};
];
species [:String;];
};