Monthly ArchiveFebrero 2007



Ideas & Arquitectura de Software 28 Feb 2007 09:55 am

Hacer algo y que lo mantengan otros

Debido a que estoy impartiendo un curso de C++, además de leer y utilizar los libros al uso o más académicos, estoy leyendo el libro “Diseño y Evolución de C++” de Bjarne Stroustrup.

Bjarne Stroustrup

Este libro cuyo título en inglés es The Design and Evolution of C++, me está resultando tremendamente interesante; casi como una novela.

Stroustrup nos plantea cómo le surgen algunas ideas que hoy vemos implementadas en C++ y en lenguajes orientados a objeto como Java, pero el pensamiento que más me ha gustado hasta el momento es éste:

Nos cuenta que primero se implementó C con Clases, y que tuvo un “éxito mediano”, y este regular en la difusión del lenguaje fue lo que le planteó el dilema de seguir con este lenguaje y estar condenado a dar soporte a los usuarios del momento de C con Clases de forma indefinida o no. Así pues le quedan dos opciones:

  • Dejo de dar soporte a C con Clases y los usuarios se buscan la vida.
  • Creo un lenguaje mejor con un éxito rotundo, de forma que sean los usuarios y las corporaciones los que se den ese soporte

El objetivo en realidad es: “Así me libero del soporte y puedo dedicarme a otras cosas más interesantes”.

Hoy sabemos que eligió la segunda opción, pero a pesar del éxito que tuvo finalmente C++, no ha podido liberarse del todo del soporte al lenguaje, pero como objetivo me gusta… la verdad.

Software Libre & Sociedad 10 Feb 2007 10:41 pm

Conferencia Internacional de Software Libre

Este año también nos hemos acercado David Sanz y yo a la Conferencia Internacional del Software Libre a presentar nuestro producto Osmius. También estuvimos el año pasado en Málaga, pero este año en Badajoz hemos llevado un póster y preparado un resúmen para contar a un posible interesado.

Auditorio Principal

Animo desde aquí a presentar póster y ponencias de vuestros proyectos y trabajos. Hacer una presentación y escribir un resúmen o una ponencia ayuda a sintetizar ideas y, claro está, al intercambio de conocimiento.

El congreso ha estado bastante bien. Con sus complicaciones y fallos en la organización que le dan el toque humano a un evento que ha sido atendido por un montón de voluntarios (un saludo a Samer). Esta vez era un evento cerrado al público no inscrito previamente; no sé, creo que prefiero más gente, sean estos estudiantes ávidos de camisetas y alfombrillas gratis.

De las charlas, yo me quedo con la de Miguel de Icaza sobre el estado y el futuro de Mono. Hay gente que va sobrada a las presentaciones y este tío pertenece - si no lidera - ese grupo.

Unas fotitos:

Sala CISL

DSC_0027

Joselu en Stand de Osmius

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.