What are "objects" in ElePub
terms?
"Object" is a frequently used buzzword and as always
with buzzwords, although everybody uses them, few really know
what it actually meant in the first place - before it was
used by many different people for even more different things.
To make our point clear, we would like to define what we mean
by using "object" in conjunction with our software
products. But first we must have a little look into history
to show where it all came from.
The word "object", or rather "object-oriented",
in software terms really comes from a theory about software
development, which was invented in Oslo in 1962 (!!!), when
the great-grandmother of today's popular Java was developed,
called Simula. This theory and Simula were adopted by the
famous Xerox PARC (Palo Alto Research Center) where some ingenious
people developed windows, the computer mouse, the Smalltalk
computer language and a few other goodies, which were later
marketed very successfully - by other companies!
Since then object-oriented software design has become generally
accepted, and today is an unquestioned and widely used "paradigm".
It first became a commercially available product through Smalltalk,
this first and still most mature pure object-oriented software
development environment, where everything is an object and
where the developer cannot do else but program in an object-oriented
style.
We are using Smalltalk, this most mature and stable object-oriented
software environment, which is also the true mother of Java.
And therefore we use the term "object" fully in
the sense of Smalltalk and in a more radical way than does
Java (which has, with respect to the many C++ people, slightly
diluted this concept). By the way, the spiritual father of
ElePub has been using o-o technology for commercial software
since 1987, first Objective-C, later C++, which was quickly
given up in favor of Smalltalk.
An "object" in any of our products
encapsulates in one self-contained entity:
- all the data owned by an object
- and also all the programming code operating on this data.
This together forms the typically quite
small unit called "object.
The second great specialty of real objects is in their unique
ability to compose complex multi-dimensional structures of
multiple object types where one object is the holder of any
number of other objects of many different types (classes).
This is visually somewhat similar to this famous Russian babushka
doll with the difference that with objects there are typically
many different other objects on every level, which again are
themselves the holder of many other objects. This results
in a modularity degree extended to the extreme!

Another unique specialty of such object trees is their ability
to inherit data and code from ancestors or to overwrite it
where needed. This greatly reduces the amount of needed code
by constructing highly abstract and generically re-usable
object hierarchies where only the objects on the lowest level
become really explicit and concrete.

To enforce encapsulation and to avoid all side effects objects
can only communicate with one another through strictly defined
protocols called messages, which substantially differ from
conventional calls to function or subroutines.
This extreme modularization coupled with inheritance and
the total encapsulation of data and code in small units, which
can only talk to one another through messages, this are the
basic principles for building object-oriented software systems.
All of our products are uncompromising build in this object-oriented
spirit.
In short terms, in Smalltalk objects
are:
- data and code encapsulated in small and self-contained
units,
- many of which create multi-dimensional and multi-level
hierarchies,
- where children can inherit or overwrite data and code
from their ancestors
- and objects communicate solely through strictly defined
message protocols.
This is why object-oriented systems differ
substantially in concept and in implementation from what is
done everywhere else. This is especially true when compared
with "structured programming", the concept which
was used to develop more than 90% of today's software applications.
None of this is new! Object-oriented systems have been around
for decades although they have gained broad recognition of
the general public only recently when Java became the widely
accepted hype and buzzword, despite the fact that Java's concepts
have already been around for two decades in Smalltalk and
in some other less well known languages!
Really new is that finally all of these proven rules and
concepts are also applied to your application data, to publications,
pages, frames, page components and to all objects administrating
content and format. ElePub and EleStore are the first purely
object-oriented publishing and contents systems applying these
concepts to user data!
Therefore, in conjunction with our products we always use
and mean "object" in strictly and purely object-oriented
terms as implemented in Smalltalk and, mostly, in Java.
|