MVC Changes The Conceptual
Level
(Evolution Of
Programming Methodology, Part II, Page 3)
By Bill Nicholls
March 27,
2000
The
big change in programming discoveries started in the late
1970s. Prior to that, the discoveries and refinements dealt
with details of how the program was written and structured
-- the program conceptual space.
Starting with Model-View-Controller (MVC), this new
approach worked on the higher level of problem conceptual
space. MVC was introduced with Smalltalk by Xerox PARC in
the late 1970s.
MVC abstracted the problem from the programming
details, and then separated three aspects of the problem
into independent but interacting components. MVC is briefly
defined as:
- Model: The data and logic that defines how to
access and change that data.
- View: The way the data is presented to the user
or another machine.
- Controller: Provides input and feedback to the
model to change the data.
The power of this approach was that it basically did not
matter how the individual components were created. As long
as the interfaces were consistent, one could remove a
component and replace it with something more powerful
without impacting the other components at all. MVC was in
some ways an early version of objects, but without the
fine-grained nature of current object approaches.
MVC's acceptance suffered from three problems. First, it
was a large leap to understanding the concept and how to
make it work. Second, it was introduced as a part of the
Smalltalk language that had its own significant learning
curve. Third, the cost of training and conversion was a big
obstacle to companies that considered the option. The costs
were up front, the benefits were, maybe, down the road a
ways. And maybe not. MVC was a powerful concept, but it did
not make a big impact at that time.
Despite these negatives, MVC as a concept was a major
turning point. MVC introduced ideas that were catalysts to
the later complementary concepts of objects and patterns.
You can view objects as MVC in small scale, and patterns as
MVC in large scale.
Client/Server (C/S) in the 1980s, was the next big
innovation, this time in the structure of the delivery
mechanism. No longer was all processing done in a central
point and only display and data entry done remotely. Now
processing could be done where it was most appropriate, near
the entry or near the data. However weak the original
concept seems today, it did introduce the concept of doing
the processing where the data was. Today, C/S is part of the
solution and comes in two level (original flavor) and three
level with database added.
<<<Previous
Page >>>Next
Page