The corruption of MVC: How the original design pattern was misunderstood and misapplied
By
csb6
8mo ago· 7 min readenOpinion
100/100
Golden Brown
Bagelometer↗
Pure flour-power. Hearty enough to carry you through lunch.
Score100TypeopinionSentimentnegative
Summary
This article critiques how the original Smalltalk MVC (Model-View-Controller) design pattern has been misunderstood and misapplied over the years, particularly by major platforms like Apple. The author traces the evolution of MVC definitions, highlighting how the original intent—where the Controller handles user input and the View handles display—has been corrupted into a pattern where the View and Controller are conflated. The piece argues that modern interpretations (especially Apple's Cocoa MVC) have led to bloated, unmanageable controllers and a loss of the pattern's original clarity and separation of concerns.
Key quotes
· 3 pulledMVC Consists of three kinds of objects. The Model is the application object, the View is its screen presentation, and the Controller defines the way the user interface reacts to user input.
A view object knows how to display and possibly edit data from the application's model… A controller object acts as the intermediary between the application's view objects and its model objects…
However this definition has been abused over the years - Back in 2003 I gave a talk citing how bad Apple's definition was.
stlab hosts modern, modular C++ algorithms and data structures.

