Milestone-Proposal:Object-oriented programming

Revision as of 12:39, 14 November 2016 by Bjarte (talk | contribs)

To see comments, or add a comment to this discussion, click here.

Docket #:2016-09

This Proposal has been approved, and is now a Milestone

To the proposer’s knowledge, is this achievement subject to litigation? No

Is the achievement you are proposing more than 25 years old? Yes

Is the achievement you are proposing within IEEE’s designated fields as defined by IEEE Bylaw I-104.11, namely: Engineering, Computer Sciences and Information Technology, Physical Sciences, Biological and Medical Sciences, Mathematics, Technical Communications, Education, Management, and Law and Policy. Yes

Did the achievement provide a meaningful benefit for humanity? Yes

Was it of at least regional importance? Yes

Has an IEEE Organizational Unit agreed to pay for the milestone plaque(s)? Yes

Has an IEEE Organizational Unit agreed to arrange the dedication ceremony? Yes

Has the IEEE Section in which the milestone is located agreed to take responsibility for the plaque after it is dedicated? Yes

Has the owner of the site agreed to have it designated as an IEEE Milestone? Yes

Year or range of years in which the achievement occurred:


Title of the proposed milestone:

Object-oriented programming, 1961-1967

Plaque citation summarizing the achievement and its significance:

In what IEEE section(s) does it reside?

IEEE Norway Section

IEEE Organizational Unit(s) which have agreed to sponsor the Milestone:

IEEE Organizational Unit(s) paying for milestone plaque(s):

Unit: IEEE Norway Section
Senior Officer Name: {{{Senior officer name}}}

IEEE Organizational Unit(s) arranging the dedication ceremony:

IEEE section(s) monitoring the plaque(s):

Milestone proposer(s):

Proposer name: Olaf Owe
Proposer email: Proposer's email masked to public

Proposer name: Knut Hegna
Proposer email: Proposer's email masked to public

Proposer name: Jenny Olsson Picalausa
Proposer email: Proposer's email masked to public

Proposer name: Bjarte M. Østvold
Proposer email: Proposer's email masked to public

Proposer name: Sverre Holm
Proposer email: Proposer's email masked to public

Please note: your email address and contact information will be masked on the website for privacy reasons. Only IEEE History Center Staff will be able to view the email address.

Street address(es) and GPS coordinates of the intended milestone plaque site(s):

Gaustadalléen 23B, N-0316 Oslo, Norway. 59.943329 N, 10.717839 E

Describe briefly the intended site(s) of the milestone plaque(s). The intended site(s) must have a direct connection with the achievement (e.g. where developed, invented, tested, demonstrated, installed, or operated, etc.). A museum where a device or example of the technology is displayed, or the university where the inventor studied, are not, in themselves, sufficient connection for a milestone plaque.

Please give the address(es) of the plaque site(s) (GPS coordinates if you have them). Also please give the details of the mounting, i.e. on the outside of the building, in the ground floor entrance hall, on a plinth on the grounds, etc. If visitors to the plaque site will need to go through security, or make an appointment, please give the contact information visitors will need. On the wall in the first floor of the Ole Johan Dahl building (Department of Informatics, University of Oslo). The building is named after one of the two people mentioned on the plaque.

Are the original buildings extant?

No. This milestone didn't really take place in just a single physical building

Details of the plaque mounting:

Inside, in the ground floor entrance hall. On a wall made from brick.

How is the site protected/secured, and in what ways is it accessible to the public?

The building is open to the public during normal opening hours.

Who is the present owner of the site(s)?

University of Oslo

What is the historical significance of the work (its technological, scientific, or social importance)?

In 1961 two Norwegian scientists put their heads together to work on something that would change the world of computer programming completely.

Their work and vision were ahead of their time. It took almost 20 years before the revolution that their main philosophy represented caught on in the United States and the rest of the world. Another 20 years were needed for this philosophy to become what is now the indispensable Object-Oriented Programming (OOP) methodology. Any computer programmer that works or has worked with such a language and most of the large software that we now run every day has been programmed this way.

The two scientists were Ole-Johan Dahl and Kristen Nygaard. In 1961 they started working on a simulation language called SIMULA. Their constant strive for generality turned into a high-level general programming language with simulations and real-time capabilities, on top of the strong simulation constructions. The resulting language was called SIMULA 67, completed in 1967.

It was more than a programming language, it came with a philosophy for programming and for understanding and organizing programs. Instead of seeing a program as a monolithic structure, in SIMULA a program was composed of a number of modules called classes. Each class could be instantiated at run-time, and such an instance was called an object. An object was an autonomous entity, with its own data and computational capabilities organized in methods, and objects could cooperate by asking another object to perform a method.

This is not unlike the understanding of the real world (where objects could reflect the things or units of interest) and of persons in different roles (such as clients or service providers). An object resembles a person in that it has capabilities and may be asked to perform services by other persons.

They also implemented a first SIMULA compiler, advancing the-state-of-the-art with implementation techniques for garbage collection. Some of the early SIMULA examples included a post office system with tellers and customers, and a traffic control system with cars and trucks.

This style of organizing the code and data was later termed “object-oriented programming” (OOP).

[Sverre: for mye Simula, for lite OOP] From 1968 the standardization of SIMULA was taken over by the Association for SIMULA Users, and many industrial teams in European countries started implementing it for the mainframe computers of that time. Stanford University wanted to teach SIMULA to their students, but was not allowed a free compiler by NR, despite Dahl and Nygaard’s recommendation -- they understood that this would have enormous implications.

SIMULA was less known until Alan Kay in the USA picked up the ideas of SIMULA and started OOP with his Smalltalk language. Ten years after him Bjarne Stroustrup, who was taught SIMULA by Nygaard decided to introduce the SIMULA philosophy to the C systems developers community, thus creating the C++ object-oriented language. Another ten years later Java was developed under the auspices of SUN by James Gosling who also worked with and appreciated the OOP ideas.

The co-routine mechanism of SIMULA allowed one to think of the objects as units that were operating concurrently. This gave rise to the notion of several windows operating on a PC independently, a notion which was essential in the windows operating systems of Microsoft and in the Apple operating systems, both inspired by SIMULA through Smalltalk.

The modern computer is organized in the way invented in SIMULA, and the object-oriented programming paradigm has been established as the dominating paradigm in computer systems. [Sverre: for "dramatisk" for en søknad] This is the story of how OOP started and developed.

What obstacles (technical, political, geographic) needed to be overcome?

What features set this work apart from similar achievements?

Supporting texts and citations to establish the dates, location, and importance of the achievement: Minimum of five (5), but as many as needed to support the milestone, such as patents, contemporary newspaper articles, journal articles, or chapters in scholarly books. 'Scholarly' is defined as peer-reviewed, with references, and published. You must supply the texts or excerpts themselves, not just the references. At least one of the references must be from a scholarly book or journal article. All supporting materials must be in English, or accompanied by an English translation.

Supporting materials (supported formats: GIF, JPEG, PNG, PDF, DOC): All supporting materials must be in English, or if not in English, accompanied by an English translation. You must supply the texts or excerpts themselves, not just the references. For documents that are copyright-encumbered, or which you do not have rights to post, email the documents themselves to Please see the Milestone Program Guidelines for more information.

Please email a jpeg or PDF a letter in English, or with English translation, from the site owner(s) giving permission to place IEEE milestone plaque on the property, and a letter (or forwarded email) from the appropriate Section Chair supporting the Milestone application to with the subject line "Attention: Milestone Administrator." Note that there are multiple texts of the letter depending on whether an IEEE organizational unit other than the section will be paying for the plaque(s).