Composite Applications, MVP, MVVM and You!
Wednesday, April 15th, 2009Composite applications are just applications made with the intent to reuse the functionality created in them to make the development of other applications faster and easier.
The implementation and stigma around the named composite methodologies (like Model View Presenter and Model View ViewModel), is that they are some new complicated methodology for application development. The sad truth is that they are an old programming methodology; it is just object oriented programming rehashed, narrowed and renamed. I assume it’s so that a person that has nothing to offer the development community can still profit from it by restating OOP in different words.
Many companies just hired “developers” and let them do whatever they wanted as long as they produced something that worked. I blame these pseudo developers as much as I blame the mental dwarfs that keep rehashing the old shit and placing it in a shiny new wrapped gift box… with sparklies. Just because most of the people hired to be developers did not follow the principles of object oriented design, does not mean that those principles did not previously exist. But these talentless unproductive mouth breathers know that they can make a pretty penny by pretending that all the problems caused by the old developers was because the shiny new box of shit that they just created didn’t exist before.
The actual ideas behind the buzzwords are older than even C++ (my favourite language), there were other languages before C++ to adopt the, “easy to maintain and reuse” philosophy of object oriented design. Just because I think it’s ridiculous to rename and old ideal and sell it as something new does not mean that I think it is a bad thing… at least not in itself. The ideas behind composite application development show one way that you can use OOD principles to make developing, maintaining, testing and deploying of applications faster and easier.
The negative effect is when these “developers” start to believe that this one way is the only way. Even when there is almost half a century of good object oriented development principles. Although making something easier and faster to maintain, develop, test and release is a good thing, its like teaching a child to ride a bike using training wheels. The kid can get up on the bike and pedal without falling over, and it can help the kid learn to eventually ride the bike without the training wheels. It’s not bad that developers start with training wheels, it’s bad when “developers” just trade one set of training wheels for another set and never free themselves from the limitations.
