20 marzo 2006

La plataforma .NET


Llevamos varios años hablando de ese invento de Microsoft llamado .NET. Creo que en pocas palabras se podría definir como el Java de Microsoft (cosa que no es correcto). 4 años escuchando las bondades de .NET y realmente la presencia de programas desarrollados en .NET es mínima. Esto se va a acabar, porque aparecerá Windows Vista, o cómo hacer casi todo un S.O. usando Java emm digo .NET. Sabemos que será lento, muy lento (por eso no han implementado todo en .NET) y que consumirá muchos recursos. Es a partir de ese día cuando la plataforma .NET entre en los ordenadores de muchas empresas y hogares.

Desde hace algunos años he recibido algo de formación sobre programación en .NET en la empresa para la que trabajo. Personalmente, el lenguaje C# me gusta, me siento muy cómodo con él y el entorno de desarrollo de Visual Studio 2005 no está mal. Pero .NET es como Java, no es un monstruito; es un monstruo en consumo de recursos.

Mi labor básica con .NET es el desarrollo de pequeñas aplicaciones que interactuen con bases de datos. Únicamente tratamiento de datos, nada de operaciones complejas. Si implementas tu aplicación con los controles básicos que proporciona Microsoft (que son una mierda) tu aplicación podrá ejecutarse en cualquier ordenador más o menos decente. De lo contrario, si usas componentes de terceros (saturados de funcionalidad), tu programa será mas lento que el caballo del malo.

Durante un tiempo tuve un equipo muy limitado de recursos: un P3 900Mhz con 386mb de Ram (mas o menos) y Windows server 2003. Está claro que no es el ordenador más adecuado para programar pero no hubo más remedio. Si ejecutaba mi aplicación tardaba ¡5 segundos! en mostrar el formulario principal. La aplicación únicamente cargaba un formulario principal con unas barras de tareas. El problema parecía ser los controles de terceros usados (DevExpress) que enlentecían mucho el programa. Pero por muy limitado que sea el equipo, por muy sobrecargados que sean los controles utilizados me parece excesivo la cantidad de tiempo empleado para mostrar, hablando claramente, una mierda de ventana con una barra de herramientas.

Tras esa experiencia y tras poder contar con un mejor equipo para programar paso a desarrollar aplicaciones para PDA. Las PDA son pequeños ordenadores de mano muy limitados de hardware con los que uno puede hacer bien poco. Sirve de agenda y para manejar programas de control de stock. Si a los recursos limitados de la PDA le añades que maneje .NET pues ya la hemos liado. Obtendremos un rendimiento lamentable.

Al margen de todo esto, los chicos de Mono están a poco de liberar (al fin) una versión decente de su implementación libre de .NET. Esto significa que podemos hacer funcionar programas de .NET en más arquitecturas y sistemas operativos que los soportados por Microsoft. Hace un tiempo en el blog de Miguel de Icaza se mostró una comparativa sobre las mejoras en Mono que lo acercaban mucho a la velocidad de .NET. Sería interesante que con motivo del próximo lanzamiento de Mono alguien se atreviese a realizar un análisis y comparar el rendimiento de ambos.

No hay comentarios: