Below you will find an abbreviated version of an article requested by an encyclopedia some years ago. It gives a brief description of some key facts about the early history of object-oriented programming. This page will be expanded and provide link, I hope, to a number of important papers. Some of these papers are frequently referred to but seldom read, I suspect, since they have not been easily available. As for the history, the paper Dahl and I wrote for the "History of Programming Languages" conference and book (edited by Richard Wexeblat) will appear on these pages soon. Another interesting and competently researched paper is already on the web, written by Jan Rune Holmevik. How Object-Oriented Programming Started
by Ole-Johan Dahl and Kristen Nygaard, SIMULA I (1962-65) and Simula 67 (1967) are the two first object-oriented languages. Simula 67 introduced most of the key concepts of object-oriented programming: both objects and classes, subclasses (usually referred to as inheritance) and virtual procedures, combined with safe referencing and mechanisms for bringing into a program collections of program structures described under a common class heading (prefixed blocks). The Simula languages were developed at the Norwegian Computing Center, Oslo, Norway by Ole-Johan Dahl and Kristen Nygaard. Nygaard's work in Operational Research in the 1950s and early 1960s created the need for precise tools for the description and simulation of complex man-machine systems. In 1961 the idea emerged for developing a language that both could be used for system description (for people) and for system prescription (as a computer program through a compiler). Such a language had to contain an algorithmic language, and Dahl's knowledge of compilers became essential. The SIMULA I compiler was partially financed by UNIVAC and was ready in January 1965. SIMULA I quickly got a reputation as a simulation programming language, but turned out in addition to posess interesting properties as a general programming language. When the inheritance mechanism was invented in 1967, Simula 67 was developed as a general programming language that also could be specialised for many domains, including system simulation. Simula 67 compilers started to appear for UNIVAC, IBM, Control Data, Burroughs, DEC and other computers in the early 1970s. Simula 67 still is being used many places around the world, but its main impact has been through introducing one of the main categories of programming, more generally labelled object-oriented programming. Simula concepts have been important in the discussion of abstract data types and of models for concurrent program execution, starting in the early 1970s. Simula 67 and modifications of Simula were used in the design of VLSI circuitry (Intel, Caltech, Stanford). Alan Kay's group at Xerox PARC used Simula as a platform for their development of Smalltalk (first language versions in the 1970s), extending object-oriented programming importantly by the integration of graphical user interfaces and interactive program execution. Bjarne Stroustrup started his development of C++ (in the 1980s) by bringing the key concepts of Simula into the C programming language. Simula has also inspired much work in the area of program component reuse and the construction of program libraries. In the 1980s tremendous resources were put behind the ADA language (US Department of Defense) and PROLOG (the Japanese "Fifth Generation Computer Project"), and many believed that ADA and PROLOG would fight for dominance in the 1990s. Instead object-oriented programming is today (in the late 1990s) becoming the dominant style for implementing complex programs with large numbers of interacting components. Among the multitude of object-oriented language are Eiffel (B. Meyer) , CLOS (D. Bobrow and G. Kiczales), SELF (D. Ungar and others). In particular the Internet-related Java (developed by Sun) has rapidly become widely used in recent years. BETA (B. Bruun-Kristensen, O. Lehrmann Madsen, B. Møller-Pedersen and K. Nygaard) is a very general object-oriented language in the Simula tradition. |
|
Time
Line
Language development
Main application areas
|
|
Already
in the age of the Vikings Norwegians had
The cartoon is my comment to a certain kind of "who came first"-discussion some times heard among computer people. "When was object-orientation first used?" . In my opinion this discussion is rather silly, since you had to think about and organise your computation in a way that later could be described as "object-oriented" if your task at hand so demanded. I could argue that my Monte Carlo-calculations in 1949 (to determine the proper radius of the uranium rods of the first civilian reactor in Europe) were an example of object-orientation, even if the calculations were carried out by a group of people using electromechanical desk calculators. In the same manner, all earlier and later simulation (and some engineering) schemes may in retrospect be characterised as "object-oriented", You will find in the early litterature that some people maintained that Algol and even Fortran were excellent simulation languages. However, object-orientation did not come into existencs till 1965 as an articulated way of system description and programming, built upon precise, general concepts materialised as concise language constructs, allowing a common approach to understanding wide classes of phenomena. To use an analogy, gravitation for sure existed before Newton. and people certainly had to take that into account in their designs. Few will describe these designs as being "early approaches to the theory of gravitation" |
|