A New Paradigm

Object-oriented programming is often described as a new paradigm. The word paradigm is a strange term, not one that often arizes in everyday conversation. Let us start by considering the definition of this term. A typical dictionary definition runs something like the following:

Par a digm n. A list of all the inflectional forms of a word taken as illustrative example of the conjugation or declension to which it belongs. An example or model. That is, a paradigm might be something like an example sentence that you recall to help remember how to conjugate a verb in a foreign language.

What in the world does this have to do with computer programming languages? To understand the connection, one has to know that there was a historian of science, Thomas Kuhn, who used to word to describe the progress of scientific thought. His idea was similar to the concept of puncuated equilibrium that has recently become popular in the evolutionary biology community. That is, the idea suggests that life progresses with little change for long periods of time. Thus, in a very short period of time, things change radically before settling down again for a long period. Kuhn argued that science changed when our model of the world, our paradigm for describing the universe, was changed.

An example paradigm change was the introduction of newtonian physics, or the overthrow of newtonian physics by relativity.

The word made its way into computer science in the the 1979 Turing Award lecture given by Robert Floyd. The Turing award is rather like the Nobel Prize in computer science. The title of his talk was ``The paradigms of Programming'', and he applied this notion of a mind-set or way of looking at the world to the way in which software gets created.

Since that time people have used the term ``programming paradigm'' to mean a systematic way of thinking about what is happening when software executes. Not the actual low level description of what is really going on, but a high level intuitive model that will assist in the visualization and creation of programs.

[audio] [real] Text to accompany slide04, in Chapter 1 of An Introduction to Object-Oriented Programming