Objectives
This section intends to render the
discussion concerning the
often referred to distinction
between object-based and
object-oriented, as originally
presented in [Wegner87].
Nowadays, this discussion is of
interest primarily from a historical
perspective.
Following [Wegner87], this section presents
orthogonal dimensions of object-oriented language design.
It also contains a discussion concerning
open systems and dimensions of modularity,
issues which are directly related to the motivations underlying the
adoption of an object-oriented approach.
Points to emphasize
- object-oriented -- object-based + inheritance
- orthogonal dimensions --
objects, types, delegation, abstraction
- open systems --
dimensions of modularity
Hints
This section is rather philosophical
in nature.
Nevertheless, clarification of terminology
is a goal worth striving for,
as testified by the more recent efforts
of the OMG.
See section [OMG].
Questions
- How would you characterize the difference between object-based and object-oriented?
- Along what orthogonal dimensions would
you design an object-oriented language?
Explain.
Comments
It is important to distinguish between
the core object model offered by the majority
of object-oriented languages and the extensions
that allow for distribution and platform
and vendor independent applications.
See chapter 11.