Complicándonos la vida
Hace poco leía en un weblog (siento no recordar dónde) que el problema que tenemos los desarrolladores web es que nuestro trabajo es muy aburrido. El 90% de los casos lo único que se hace es leer datos de una bbdd y mostrarlos por pantalla. Aquel artículo argumentaba que lo aburrido del trabajo hacía que complicásemos innecesariamente la labor, con modelos MVC, desacoplamiento de lógica y presentación y otros artefactos (J2EE, plantillas PHP, etc) en realidad innecesarios.
Yo no estoy de acuerdo con esa argumentación. Si bien es cierto que mucho desarrollo web es simple, creo que cada vez se desarrollan aplicaciones más complejas (banca electrónica, simulación de pólizas de seguros, por ejemplo) que precisan de estos patrones de software. Es más, páginas que empiezan siendo simples volcados de datos, se van enriqueciendo para servir mejor a los usuarios y terminan convirtiéndose en complejas aplicaciones imposibles de manejar y mantener sin la ayuda de esta infraestructura.


Otro ejemplo: me gano la vida desarrollando componentes en C++ que no hacen sino de intermediarios entre otros componentes y, simplificando, se podría decir que lo "único" a lo que me dedico es a implementar unas idls's, montar unos threads, sincronizarlos y mangonear los datos de un lado a otro.
Alguna vez he acometido la tarea de escribir una aplicación web doméstica (o sea, obligadamente modesta) y, maldita sea, si uno no termina recurriendo a los patrones que mencionas (sobre todo si te aferras al PHP) termina siempre acabando en un batiburrillo infumable.