Atlas Trail
Object Oriented Programming: Two Origins, One Paradigm
Object oriented programming did not arrive from one place. This trail follows the atlas's own disputed record of its birth, from Simula's classes and inheritance in Norway to Alan Kay's Smalltalk at Xerox PARC, and on to the languages, C++ and Java, that carried the paradigm into everyday software.
Stop 1 of 9.
Concepts
Object oriented programming organizes software around objects that bundle data with the procedures that act on it. This atlas records its origin as genuinely disputed. Simula gets credit for the first classes and inheritance in 1967, while Alan Kay was already using the term the same year while building Smalltalk, so the paradigm's birth date depends on whether the mechanism or the name is being dated.
Stop 2 of 9.
Languages
Designed by Kristen Nygaard and Ole Johan Dahl and released in 1967, Simula is considered the first object oriented programming language. Its Simula 67 variant introduced objects, classes and inheritance, and it went on to influence C++, Java and Smalltalk directly.
Stop 3 of 9.
Pioneers
Nygaard designed Simula with Ole Johan Dahl in the 1960s and is called a father of object oriented programming. The language he built is widely regarded as the first to hold the paradigm's core mechanisms, even though the name came later from someone else's project.
Stop 4 of 9.
Languages
Built at Xerox PARC through the 1970s under Alan Kay, Smalltalk is the purely object oriented language, and Smalltalk-80 was the first version shared outside PARC, in 1981. It gave the paradigm its name and much of its familiar modern form, and it went on to influence Objective-C and Ruby.
Stop 5 of 9.
Pioneers
Kay led the Learning Research Group at Xerox PARC that created Smalltalk, working alongside Dan Ingalls and Adele Goldberg. He was already using the term object oriented programming in 1967, the same year Simula was released, which is why the atlas records both projects as the paradigm's origin rather than picking one.
Stop 6 of 9.
Languages
Bjarne Stroustrup extended C with object oriented, generic and later functional programming facilities while keeping C's low level memory control. The result became a dominant language for systems programming, game engines and performance critical software, and it carried the paradigm forward into Java, C# and Rust.
Stop 7 of 9.
Pioneers
Born in Denmark on 30 December 1950, Stroustrup built C++ by adding object oriented features onto C, a decision that let a generation of systems programmers adopt the paradigm without leaving the language they already used.
Stop 8 of 9.
Languages
James Gosling's language, developed from 1991 and first released as Java 1.0 in 1996, carried object orientation into enterprise, Android and web back end software through its write once, run anywhere portability. Java itself was influenced directly by C and C++.
Stop 9 of 9.
Pioneers
Gosling invented Java, the language that took object oriented programming from research systems into the everyday software running on servers and phones worldwide.
Create an account to keep this trail. Saving copies its stops into a collection of your own, which you can add to, reorder and share.
Where you have got to in this trail is kept by your own browser and is never sent to us. Clearing your browser data clears it. All trails.