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