Simula to Java and beyond: major
O-O languages and environments
ncouraged by the introduction of Simula in 1967, a number of object-oriented
languages have appeared on the scene, highlighting various aspects of the approach. This
chapter reviews some of the languages that have attracted the most attention: Simula;
Smalltalk; C++ and other O-O extensions of C; Java.
The literature still lacks an in-depth comparative study of important O-O languages.
The ambition of this chapter is of necessity more modest. In particular, the space allotted
to each language is not an indication of the language’s practical significance, and some of
the most publicized will indeed get a fairly short treatment. Our goal is to learn about
, finding them where we can, even if that means turning our attention for a
while to one of the less hyped approaches. The risk of under-representing one of the
principal players is not great, since one only has to look around to pick up articles and books
describing it in generous detail. The real risk would be the reverse: to miss a promising idea
just because the language supporting it (say Simula) does not currently enjoy top favor. In
its coverage of notable languages, then, this survey is not equal-opportunity; it is instead,
in its choice of notable language traits, a case of affirmative action.
Even when the concepts are the same or similar, the terms used to denote them in
official language descriptions can vary. The discussion will use the native terms when they
reflect language peculiarities; for simplicity and consistency, however, it uses the
terminology of the rest of this book (designed as an attempt at unification) when
differences are unimportant. For example you will read about Simula routines, procedures
and functions, although the corresponding terms in official Simula usage are procedure,
untyped procedure and typed procedure.
The undisputed founder of the House of Classes (Object Palace) is Simula, whose design
was completed (if we ignore a few later updates, entirely minor) in 1967. This may seem
hard to believe: a full-fledged object-oriented language was around, and implemented,
structured programming, before Parnas had published his articles on information
hiding, many years before anyone had come up with the phrase “abstract data type”. The
Vietnam War was still a page-4 item; barricades had not yet sprung up in the streets of
Paris; a mini-skirt could still cause a stir: away by the Northern shores of the Baltic a few