Resumen

Actualmente, el mundo del desarrollo de software está centrado en el uso de un lenguaje estándar para la implementación de los proyectos; con lenguajes de programación como Java, PHP o C#, son escritas la mayoría de las aplicaciones que se producen en la industria [1]. La principal razón por la cual predominan las monoculturas es que un lenguaje estándar de programación es fácil de usar, tanto para los desarrolladores como para los administradores cuando de conseguir personal para el proyecto se trata. 


Consecuentemente, se ha visto la necesidad de introducir frameworks que facilitan el trabajo a los desarrolladores, en funcionalidades que cada vez requieren mayor especialización, como el acceso a base de datos, el manejo eficiente de XML, la construcción rápida de interfaces de usuarios o la creación de servicios web, ya que el lenguaje por sí solo lo hace un poco tedioso. Estos nuevos frameworks introducen abstracciones y normalmente  requieren un extenso conocimiento para su configuración y uso, elevando la curva de aprendizaje y la complejidad de la  solución.