Difference between revisions of "Milestone-Proposal:Object-oriented programming"

(New text in these 2 section : Obstacles, What features)
(Rewritten section on Historical significance)
Line 41: Line 41:
 
|a9=The building is open to the public during normal opening hours.
 
|a9=The building is open to the public during normal opening hours.
 
|a10=University of Oslo
 
|a10=University of Oslo
|a4=In 1961 Ole-Johan Dahl and Kristen Nygaard put their heads together to work on something that would change the world of computer programming completely. The two scientists 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.
+
|a4=In 1961 Ole-Johan Dahl and Kristen Nygaard started working together to
 +
develop a description language for computer simulations. The two
 +
scientists developed a simulation language called
 +
SIMULA. This resulted in several versions of the language, including SIMULA 1.
 +
After completing Simula 1, they developed a high-level general programming language with
 +
real-time capabilities, on top of strong simulation constructs. 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.
+
The language incorporated fundamentally new mechanisms for programming
 +
and for program structuring, compared to existing languages.  It
 +
introduced the class concept for encapsulation of data structure and
 +
code, subclasses for reuse of code, late binding for flexible
 +
inheritance, as well as dynamic and static instantiation of classes.
 +
Instead of seeing a program as a monolithic structure, the code of a
 +
SIMULA program was organized in a number of classes and blocks.
 +
Classes could be dynamically 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
 +
procedures (methods), and objects could cooperate by asking another
 +
object to perform a procedure (i.e., by a remote call to a procedure
 +
of another object).
  
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.
+
This gives a natural way of modeling real world problems, letting
 +
objects reflect the things of interest, including clients or service
 +
providers.  An object resembles an autonomous unit in that it has
 +
capabilities and may be asked to perform services by other units.
 +
This style of organizing the code and data was later termed
 +
“object-oriented programming” (OOP).
  
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.
+
Object orientation and object-oriented programming became popular
 +
world-wide when the ideas of SIMULA were adopted in wide-spread
 +
languages such as  C++ and Java. In the 1970s in USA, Alan Kay
 +
picked up the ideas of SIMULA in his Smalltalk language. Around 1980,
 +
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 adhered to the SIMULA object-oriented mechanisms even more
 +
closely than C++.
  
This style of organizing the code and data was later termed “object-oriented programming” (OOP).
+
The co-routine mechanism of SIMULA allowed one to think of the objects
 +
as units that were operating concurrently. This lead to the notion of
 +
concurrent objects and inspired the combination of concurrency and
 +
object orientation.
  
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.
+
Object-oriented programming, originating from the work on SIMULA, is
 +
by far the most popular paradigm for computer programming today and
 +
the last 20 year. This has been acknowledged by several prestigeous
 +
awards including the Turing award and the von Neumann medal.
  
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. ]
+
Today, nearly all computer programmers works with or has worked with a
 +
language that supports object-oriented programming and most of the
 +
large software that we now run every day has been programmed this way.
  
[It took almost 20 years before the revolution that the main philosophy of object-oriented programming 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.]
+
|a6=[ Technical obstacles: Simula compiler, fra forrige punkt?]
 
+
|a5=Object-oriented programming, originating from the work on SIMULA,  is by far the most popular paradigm for computer programming today and the last 20 year.
Today, nearly all computer programmers works with or has worked with a language that supports object-oriented programming and most of the large software that we now run every day has been programmed this way.
 
[
 
The software of 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.
 
]
 
 
 
[Bjarte: foreslår å slette alt som står i firkantklammer. Jeg har satt inn ett sett av slike over siden siste møte med alle 5. Jeg har også lagt til en ny setning umiddelbart etter dette settet.
 
Jeg synes også at vi bør erstatte "the SIMULA philosophy" med "object-oritented programming" i avsnittet om C++.
 
Vi bør dessuten ikke si at Kay "and started OOP", men i steder slette dette for for å unngå forvirring om hvem som fant opp OOP.
 
Generelt bør vi unngå forkortelsenn OOP overalt, og det tror jeg blir tilfelle med mine foreslåtte endringer.
 
Uklart om avsnittet om "a first SIMULA compiler" er relevant. Kanskje det heller bør stå under Technical obstacles (neste punkt)?]
 
|a6= [ Technical obstacles: Simula compiler, fra forrige punkt?]
 
 
 
|a5=Object-oriented programming, originating from the work on SIMULA,  is by far the most popular paradigm for computer programming today and the last 20 year.  
 
 
|supporting materials=Citation for IEEE von Neumann award, 2002: "When Ole-Johan Dahl and Kristen Nygaard created the Simula languages in the 1960s at the Norwegian Computing Center, they introduced a new way of modeling and programming complex tasks. Object-oriented programming is now dominant in system development, and is everywhere part of the computer science curricula, as are languages built on OOP concepts, such as Smalltalk, C++, Eiffel and Java.
 
|supporting materials=Citation for IEEE von Neumann award, 2002: "When Ole-Johan Dahl and Kristen Nygaard created the Simula languages in the 1960s at the Norwegian Computing Center, they introduced a new way of modeling and programming complex tasks. Object-oriented programming is now dominant in system development, and is everywhere part of the computer science curricula, as are languages built on OOP concepts, such as Smalltalk, C++, Eiffel and Java.
 
Kristen Nygaard analyzed complex problems by computer  simulation, requiring interaction between many very dissimilar components. He saw the need for a description language that could be used to comprehend, describe and communicate complex systems, and also make it possible for computers to execute models of what had been described.
 
Kristen Nygaard analyzed complex problems by computer  simulation, requiring interaction between many very dissimilar components. He saw the need for a description language that could be used to comprehend, describe and communicate complex systems, and also make it possible for computers to execute models of what had been described.

Revision as of 12:56, 12 December 2016


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:

1961-1967

Title of the proposed milestone:

Object-oriented programming, 1961-1967

Plaque citation summarizing the achievement and its significance:

When Ole-Johan Dahl and Kristen Nygaard created the Simula languages in the 1960s at the Norwegian Computing Center, they introduced a new way of modeling and programming complex tasks. Object-oriented programming is now dominant in system development, and is everywhere part of the computer science curricula, as are languages built on object-oriented programming concepts, such as Smalltalk, C++, and Java.

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 Ole-Johan Dahl and Kristen Nygaard started working together to develop a description language for computer simulations. The two scientists developed a simulation language called SIMULA. This resulted in several versions of the language, including SIMULA 1. After completing Simula 1, they developed a high-level general programming language with real-time capabilities, on top of strong simulation constructs. The resulting language was called SIMULA 67, completed in 1967.

The language incorporated fundamentally new mechanisms for programming and for program structuring, compared to existing languages. It introduced the class concept for encapsulation of data structure and code, subclasses for reuse of code, late binding for flexible inheritance, as well as dynamic and static instantiation of classes. Instead of seeing a program as a monolithic structure, the code of a SIMULA program was organized in a number of classes and blocks. Classes could be dynamically 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 procedures (methods), and objects could cooperate by asking another object to perform a procedure (i.e., by a remote call to a procedure of another object).

This gives a natural way of modeling real world problems, letting objects reflect the things of interest, including clients or service providers. An object resembles an autonomous unit in that it has capabilities and may be asked to perform services by other units. This style of organizing the code and data was later termed “object-oriented programming” (OOP).

Object orientation and object-oriented programming became popular world-wide when the ideas of SIMULA were adopted in wide-spread languages such as C++ and Java. In the 1970s in USA, Alan Kay picked up the ideas of SIMULA in his Smalltalk language. Around 1980, 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 adhered to the SIMULA object-oriented mechanisms even more closely than C++.

The co-routine mechanism of SIMULA allowed one to think of the objects as units that were operating concurrently. This lead to the notion of concurrent objects and inspired the combination of concurrency and object orientation.

Object-oriented programming, originating from the work on SIMULA, is by far the most popular paradigm for computer programming today and the last 20 year. This has been acknowledged by several prestigeous awards including the Turing award and the von Neumann medal.

Today, nearly all computer programmers works with or has worked with a language that supports object-oriented programming and most of the large software that we now run every day has been programmed this way.

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

[ Technical obstacles: Simula compiler, fra forrige punkt?]

What features set this work apart from similar achievements?

Object-oriented programming, originating from the work on SIMULA, is by far the most popular paradigm for computer programming today and the last 20 year.

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 ieee-history@ieee.org. Please see the Milestone Program Guidelines for more information.

Citation for IEEE von Neumann award, 2002: "When Ole-Johan Dahl and Kristen Nygaard created the Simula languages in the 1960s at the Norwegian Computing Center, they introduced a new way of modeling and programming complex tasks. Object-oriented programming is now dominant in system development, and is everywhere part of the computer science curricula, as are languages built on OOP concepts, such as Smalltalk, C++, Eiffel and Java. Kristen Nygaard analyzed complex problems by computer simulation, requiring interaction between many very dissimilar components. He saw the need for a description language that could be used to comprehend, describe and communicate complex systems, and also make it possible for computers to execute models of what had been described. Ole-Johan Dahl joined Kristen Nygaard at the NCC. They designed the Simula concepts and language together, and Dahl carried out the difficult task of writing the program that translated descriptions into computer instructions. In 1968Dahl became the University of Oslo’s first computer science professor and built its Informatics Department. Later he has contributed to the theory of proving correctness of programs. Nygaard continued OOP, but also became the driving force in the “Scandinavian school of system development.” His efforts now are aimed at improving the teaching and conceptual platform for computer science.Dahl and Nygaard are Professors Emeriti at the University of Oslo. They both have been named Commander of the Order of Saint Olav by the King of Norway and Honorary Fellows ofthe Object Management Group, have received the Norwegian Rosing Prize and the 2001 ACM A.M. Turing Award."

Citation for ACM Turing award, 2002: "... for ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67."

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 ieee-history@ieee.org 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).