Software engineering has introduced the paradigm of the separation of the View (visual representation) from the Model (business logic) long time ago. In the realm of the Web, this principle was re-emphasized. In the late ’90s and early 2000s the separation was used to accommodate for differences between physical mediums that a web-page could be viewed on: from the lame WAP browsers to incompatible HTML ones of all kinds. Or at least, this is how it was commonly explained. I, for one, have rarely seen any actual web-application that would cleanly and transparently render to WAP and HTML from the same engine. Also, the WAP mess disappeared long before most developers would start to feel its pains. But that’s a different story.

These days tiny gadgets (think: iPhone or Blackberry if you are “uncool”) have better, more compliant browsers than some desktop systems (would that be Windows?). Is the need for MVC - the separation of Model and View gone?

On the contrary. The peak of the so-called Web 2.0 is characterized by the flood of widgets of all kinds. Widgets for iGoogle, “applications” for Facebook and even - web-enabled widgets for Desktop systems like OS-X Dashboard. Large companies of the kind of New York Times produce widgets for all of these mediums. Obviously, something like that can be a huge expenditure if you are writing each widget from scratch each time and do not re-use anything but the database.

Therefore, the Web Question of 2009 becomes: can your website’s source code output a widget instead of a full-fledged website with very little code change?

Think about it.