domingo, 27 de marzo de 2011

Tenemos nuevo estándar de C++

Si os digo que esta semana se ha celebrado en Madrid la reunión del comité ISO/IEC JTC1/SC22/WG21 y que se a aprobado el FDIS de la norma ISO/IEC 14882:2011, probablemente me diréis que lo que quiero es que no entendáis nada de lo que digo. Y tendríais razón. Así que lo diremos de otra forma.

Esta semana se ha reunido en Madrid el comité internacional de normalización del lenguaje C++. Algunos sabéis que represento a España en este comité. Y bueno la gran noticia es que hemos acordado una nueva norma para el lenguaje y su biblioteca estándar. Realmente los procedimientos de ISO harán que la nueva norma no sea oficial hasta el verano (más o menos).

Estoy muy contento por varias razones.

Por una parte, el estándar se a aprobado en Madrid, así que permitidme una ligera dosis de chovinismo. Además, la norma incluyen algunas propuesta menores que yo hice, así que permitidme otra dosis de egolatría.

Siendo un poco más serios, creo que el lenguaje se va a ver sensiblemente reforzado. Ha pasado demasiado tiempo desde la anterior norma (la ISO 14882:1998) que tuvo posteriormente una revisión menor en el año 2003.

Cada vez que doy una charla o conferencia sobre esta renovación siempre que hay alguien que me pregunta sobre su aspecto más destacable. He ido dando una respuesta distinta a lo largo de los últimos años, al tiempo que las características aparecían y desaparecían del lenguaje. A día de hoy, creo que el lenguaje se ha renovado de forma sustancial y que ahora se disponer de una biblioteca mejor y más completa.

Es difícil hacer una enumeración de las distintas novedades en el lenguaje y en la biblioteca. Y además esto está bien hecho en algunas páginas Web. Por ejemplo se puede encontrar una buena explicación de la mayoría de los cambios en la página Web de Bjarne Stroustrup (http://www2.research.att.com/~bs/C++0xFAQ.html).

Desde mi punto de vista, y posiblemente esto sea una visión sesgada, una de las novedades más relevantes es la incorporación de un modelo de hilos como parte del lenguaje. Esto afecta, tanto a las reglas del lenguaje como a la biblioteca, pero permitirá que se puedan escribir aplicaciones multi-hilo de forma portable e independiente de la plataforma (hw y sistema operativo).

A partir de ahora surgirán dos retos importantes:

  • En primer lugar, va a ser necesario realizar un importante esfuerzo de diseminación de la información. Ya están varios libros en marcha. Serán necesarios nuevos materiales de formación y la adaptación de cursos.
  • Por otra parte, será necesario seguir trabajando en la siguiente renovación del lenguajes que debería concluirse con mayor celeridad que la actual. Las estrategias para esta nueva versión la discutiremos en la siguiente reunión del comité que tendrá lugar este verano en Bloomington, Indiana.
Como siempre las posiciones de España se fijarán en el comité español de C++. Este es el comité CTN71/GT21 en el que siempre estamos deseosos de incorporar a nuevas empresas y organismos.

Para más información, me podéis encontrar en josedaniel.garcia@uc3m.es.