R. Henderson et B. Zorn, A COMPARISON OF OBJECT-ORIENTED PROGRAMMING IN 4 MODEM LANGUAGES, Software, practice & experience, 24(11), 1994, pp. 1077-1095
Object-oriented programming has become a widely used, important progra
mming paradigm that is supported in many different languages. C++ has
become the most widely used object-oriented language and many C++ prog
rammers are unfamiliar with the different approaches taken by other la
nguages in the paradigm. This paper is intended as an introduction to
a broad range of ideas in object-oriented programming. Specifically, w
e introduce four modern programming languages that support object-orie
nted programming (Oberon-2, Modula-3, Sather and Self), and show how a
simple application is coded in these languages. While each of these p
rogramming languages provide support for inheritance, dynamic dispatch
, code reuse, and information hiding, they do so in very different way
s and with varying levels of efficiency and simplicity. The use of a s
imple example, based on a common programming problem, facilitates our
comparison. We have coded the application in all of these languages, i
ncluding C++, and we compare the compile times, object code sizes, and
run times of the available implementations. Implementations of all th
e languages compared and all of the programs we measure are available
on the Internet. Ultimately, our goal is to encourage and facilitate p
rogrammers in understanding and exploring a variety of object-oriented
programming languages.