1.3. A Brief History of MVC

Model-View-Controller was first described by Xerox PARC researchers working on the Smalltalk programming language in the late 1970s and early 1980s. Smalltalk was an object-oriented, dynamically typed, reflective programming language. Its first use was in the realm of educational learning, and it differed from mainframe data and control structures in that Smalltalk programs involved:

  • Windowed user interfaces

  • Object-oriented programming concepts

  • Passing of messages between object components

  • The ability to monitor and modify their own structure and behavior

In the Smalltalk world, the model knew nothing about the controllers or the views that worked with it. The model could be observed by the view and manipulated by the controller, but other than that, the model simply represented the problem domain. Whenever the model changed, it fired off messages to the views, so they could update themselves. Views themselves were subclasses of an existing View class that knew how to render what you wanted to render. For example, if you wanted to draw a rectangle or a circle, you'd subclass an existing class for the appropriate rendering. Controllers, in the Smalltalk world, were originally conceived as being very thin, providing a means of sending messages to the model.

This is not a book on Smalltalk, but Smalltalk's impact on modern computing in general and programming in particular can't be overstated. The Macintosh, Windows, and X Windows development efforts have ...

Get Professional CodeIgniter® now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.