Finding something worth knowing…

Technology

Object-oriented programming grew from simulating ships in Norwegian cargo ports

Between 1961 and 1967, Norwegian researchers built Simula, a language mainly for physical modelling, such as tracking ships and their cargo through ports. Along the way it introduced classes, inheritance and dynamic binding, the core ideas of object-oriented programming, a style that now underpins Java, Python, Swift and a great deal of the world's software.

The notion of an object in code appeared a little earlier at MIT, where the artificial intelligence group of the late 1950s described LISP atoms with named properties. Ivan Sutherland's Sketchpad drawing system of 1960 and 1961 defined 'object' and 'instance' for graphical work, and in 1968 MIT's AED-0 linked data structures with procedures, anticipating what later became methods. Simula, though, is generally recognised as the first language with the full framework.

Alan Kay, drawing on both MIT and Simula, was already talking about 'object-oriented programming' by 1967. In the 1970s at Xerox PARC he, Dan Ingalls and Adele Goldberg developed Smalltalk, a fully dynamic system where users could reshape classes as they worked, and much OOP theory grew up around it. Kay is sometimes called the father of the approach, yet he says his ideas differ from how it is usually understood.

Popularity arrived in the 1980s. Byte magazine showcased Smalltalk in August 1981, the first OOPSLA conference in 1986 drew 1,000 people, and new languages appeared: Brad Cox built Objective-C after using Smalltalk, Bjarne Stroustrup created C++ from his experience with Simula during his doctorate, and Bertrand Meyer designed Eiffel in 1985 around 'design by contract'. Attempts to put object support into processor hardware, such as Intel's iAPX 432, failed.

By the 1990s it had become the dominant way to program, boosted by graphical interfaces whose buttons and menus mapped neatly onto objects, as in Apple's Cocoa framework. Older languages including COBOL and Fortran gained object features. Still, experts disagree on exactly which features make a language object-oriented, so classifying languages remains a matter of debate.

Source: Object-oriented programming

Related

More in Technology · All topics