Longhorn Avalon: Complejidad del modelo de objetos y otras observaciones

Interesante como siempre, el weblog de Miguel de Icaza, nos advierte acerca de la complejidad del modelo de objetos de Avalon (la nueva API de programacion de GUI de Longhorn, que con el reschedule del esta sistema operativo, tambien estara disponible para XP y W2K3). Un post muy interesante para leer, el analisis de la complejidad del modelo de objetos y otras observaciones que hace Miguel, estan basadas en la falta de recursos que tiene disponible para implementar esta API en el proyecto mono (que es una implementacion libre de .NET que corre en varias plataformas: Linux, MacOsX y otros). Un post realmente muy interesante para leer..

Tambien esta la respuesta de Chris Anderson, de Microsoft, donde analiza las conclusiones de Miguel, desde el punto de vista de la etapa en la que se encuentra el desarrollo actualmente (antes de fase beta). Una respuesta un poco liviana (a mi pobre entender) para una serie de conclusiones bastante fuertes.

Desafíos en la era de la Industrialización del Software

Hoy tuve el agrado de encontrarme con estos dos artículos, publicados en el Microsoft Architect’s Journal:

The case of Software Factories.
Problems and Innovations.

El primero de estos artículos explica en detalle los problemas a los que se enfrenta hoy la industria del software; poca mano de obra calificada, falta de herramientas de productividad, aumento exponencial de la complejidad de la administración de proyectos al incorporar recursos en proporción lineal, etc. Luego continúa haciendo un pequeño raconto de la evolución de la construcción del software, haciendo una comparación con el concepto de paradigma en las preciencias / ciencias normales de Kuhn. Y esboza una serie de soluciones (componentización, utilización de frameworks) y un muy interesante análisis de las economías de escala (scale economies), y las economías de alcance(scope economies), y explica el clásico error al comparar el proceso de producción de bienes en economías de escala, con el proceso de desarrollo en economías de alcance.

El segundo artículo (más largo que el primero) se adentra en los actuales problemas y posibles soluciones que enfrentamos al intentar industrializar el proceso de construcción del software. Y da algunos previews de conceptos que aparentemente estarán disponibles en Microsoft Visual Studio 2005 Team System (como una herramienta para automatizar el deployment de componentes), plantea el éxito de los webservices (luego de que CORBA y otras tecnologías similares fallaran).
También explica un interesante concepto que intentaré investigar: Variable Encapsulation, y lo muestra como una evolución de Aspect Oriented Programming (AOP) contrastandolo con sus beneficios y problemas.