Model-View-Controller is an architectural pattern for developing user interfaces. The pattern was formulated by Trygve Reenskaug in 1978 while visiting the Xerox PARC. MVC was conceived as a general solution to the problem of users controlling complex data sets. Its first name was Model-View-Editor. It later evolved into Model-View-Controller.
The essential purpose of MVC is to bridge the gap between the user mental model and the digital model that exists in the computer.
Jim Althoff and others implemented a version of the MVC pattern for Smalltalk-80.