En la búsqueda de modelos, técnicas y procesos para el desarrollo de la programación en un ambiente multiparadigma aparecen situaciones que producen una cierta evolución de los paradigmas clásicos dando respuesta a las mismas. Aparecen extensiones hacia la orientación a agentes y a aspectos para dar respuesta a la complejidad que van presentando el desarrollo de sistemas a gran escala. En esta etapa se ha consolidado la idea de redefinir la programación como la elección de aquellos conceptos que permitan desarrollar la tarea del programador de manera apropiada donde resolver un problema en programación significa elegir los conceptos adecuados que permitan alcanzar la solución.