Arquitectura de Software 10 Feb 2007 03:07 pm

C++, Microsoft y ACE

A través de un correo de Douglas Schmidt, creador e impulsor de este Framework en C++ para aplicaciones en red y tiempo real, me entero de que Microsoft, defiende su Visual Studio mostrando su compatibilidad con una serie de librerías y Frameworks entre los que se encuentra ACE.

Como C++ se diseñó, además de para aportar capacidades de Programación Orientada a Objeto, para que fuera completamente compatible con todo el código C existente y por crear, y no hubiera efectos colaterales como pérdida seria de rendimiento o cambios en los tiempos de compliación exagerados, se cayeron un montón de funcionalidades como:

  • Recolector de Basura de memoria
  • Manejo de excepciones
  • Soporte para concurrencia
  • Un entorno de desarrollo concreto

Ser tan estricto con C++ en su diseño probablemente lo benefició y continuará dirigiendo la evolución del lenguaje. El nuevo C++ se conoce en clave como C++0x y se está preparando para que integre el control y la gestión de hilos entre otras cosas.

En el artículo de MicroSoft sobre Visual Studio se habla de mayor conformidad del compilador de C++ con el estándar ISO C++. Bueno, está bien que hablen de compatibilidad con el resto en lugar de al revés.

Además se habla de compatibilidad con librerías de terceros, en concreto con ACE. Como sabéis utilizamos ACE en el proyecto Osmius, y aunque nos ha costado subir hasta la meseta por la curva de aprendizaje, ahora empezamos a recoger frutos como que efectivamente nuestro código tirado sobre linux, compila y ejecuta sin cambios en HP-UX y en Windows. Por no hablar de la reutilización de código y lo robusto y eficiente del conjunto.

En concreto en el artículo se habla de ACE así:

ACE es una librería C++ [en realidad en un framework ;) ] que resulta ser una bendición para los desarrolladores de software de comunicaciones de alto rendimiento y de tiempo real. ACE es un framework [ahora sí] orientado a objeto que implementa muchos patrones de diseño comunes en software de comunicaciones, redes y concurrencia. El software desarrollado con ACE es capaz de ejecutarse en una gran variedad de sistemas operativos.
Algunos de los patrones propocionados por ACE incluyen demultiplexación de eventos, despacho a los manejadores de eventos, manejo de señales, inicialización de servicios, …. ACE constituye una sofisticada base sobre la que construir aplicaciones y servicios de red y comunicaciones.

Lo mejor de esto es que desde el equipo de ACE se ha estado compilando con Visual Studio desde hace muchos años y resolviendo a base de trabajo del feo y duro, los problemas de incompatibilidad presentados.

Comments are closed.