The Real Architecture inside MVC — The beginning

Daniel Torres
3 min readAug 11, 2021

Have you always wondered what is the MVC history and wanted to know where it came from? in this article, I will be focusing on the MVC firsts steps and try to answer the who, why, when, and its aftermath.

MVC Origins

MVC was invented by Trygve Reenskaug when he visits the Learning Research Group (LRG), in Xerox PARC from the Summer of 1978 to the Summer of 1979. The group was working on Alan Kay’s vision of the Dynabook: a portable computer that should contain all data of interest to its owner/user.

An important thing to note is that this Device (Dynabook) included the programs the owner used to manipulate them. The owner/user should be able to understand and write the programs, thus gaining ascendancy over the computer. So MVC notes from Trygve should be read knowing this.

MVC Involvement in Smalltalk

Trygve Reenskaug, it’s not one of the original inventors of Smalltalk, but he made the first implementation and wrote the original MVC note at Xerox PARC in 1978.

The goal of MVC

“The essential purpose of MVC is to bridge the gap between the human user’s mental model and the digital model that exists in the computer.” -Trygve Reenskaug

The Goal of MVC was to support the user in the illusion of seeing and manipulating the model’s data information directly. So the structure of MVC is useful if the user needs to see that same model element simultaneously in different parts of the program.

Illustratation of the original MVC idea. Called originally Thing-Model-View-Editor

The naming in MVC

MVC naming was created after long discussions with Alan’s team (LRG), and ended up with the terms Model-View-Controller.

Even though the naming was MVC, after the discussions with Adele Goldberg there were some differences from the original MVC. Trygve explained, that the Controller was what he called a Tool, and the original Controller is called here an Editor. The editor was an ephemeral component that the View creates on-demand as an interface between the View and the input devices such as mouse and keyboard.

MVC after Trygve in Xerox PARC

Jim Althoff created a new version of MVC for the Smalltalk-80 class library after Trygve had left Xerox PARC and he was not involved in this work.

Trygve explains that Jim uses the term Controller somewhat differently from his MVC. The most notorious difference being that the original Controller was responsible for creating and coordinating its subviews.

“The MVC problem has more facets than I realized in 1979. I started working on a pattern language to disentangle the different aspects, that last draft was dated August 20, 2003. The plan was that it should be improved by a group of authors, not just the current single one. Unfortunately, the project died at his point.” -Trygve Reenskaug.

Conclusion

We can see that Trygve came up with MVC to help Alan’s kay vision, and the main reason for its creation was “… to bridge the gap between the human user’s mental model and the digital model that exists in the computer”. It seems right up from the beginning there is no essence or need of architecture, but rather the communication between a user and a device/computer.

Reference links:

Original post here!

The background of MVC,
“a note on Dynabook Requirements” 22 March 1979. (Partial scan, 11pp)

The first implementation of MVC:
“Thing-Model-View-Editor” 12 May 1979 (11pp)

Refinement of MVC with Adele Goldberg and Trygve Reenskaug.

“Models-Views-Controllers” 10 December 1979 (2pp)

MVC

“XEROX PARC 1978–79”

--

--

Daniel Torres

iOS developer - Delivering exceptional results no matter the situation.