Premium
Open issues in object‐oriented programming—A scandinavian perspective
Author(s) -
Madsen Ole Lehrmann
Publication year - 1995
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.4380251303
Subject(s) - computer science , object oriented programming , programming language , object (grammar) , class (philosophy) , inheritance (genetic algorithm) , method , multiple inheritance , concurrency , programming paradigm , artificial intelligence , biochemistry , chemistry , gene
We discuss a number of open issues within object‐oriented programming. The central mechanisms of object‐oriented programming appeared with Simula, developed more than 30 years ago; these include class, subclass, virtual function, active object and the first application framework, Class Simulation. The core parts of object‐oriented programming should be well understood, but there are still a large number of issues where there is no consensus. The term object‐orientation has been applied to many subjects, such as analysis, design implementation, data modeling in databases, and distribution. In this paper the term object‐oriented programming is meant to cover all these subjects, since one of the advantages of object‐orientation is that it provides a unified approach to these subjects. The issues being discussed in this paper are the following: modeling versus reuse as the main benefit of object‐orientation; the need for a language independent conceptual framework; abstraction mechanisms for supporting object‐oriented programming, including classification and composition, single and multiple inheritance, inner versus super, genericity versus virtual classes and issues related to typing; class‐based versus prototype‐based languages; and concurrency. The points of view presented in this paper reflect the author's background in the Scandinavian tradition as manifested in the BETA language and the Mjölner project.