Wednesday, June 26, 2013

Un paseo por C++11

Ayer tuve el placer de compartir con la tarde con un buen número de desarrolladores C++.

Amablemente, la empresa Indizen, organizó un evento al que asistieron, además de sus propios desarrolladores, otros de varias entidades financieras. Ya sabía yo, que en el sector financiero C++ es un lenguaje muy usado, pero no me esperaba tal éxito de asitencia. Durante dos horas un buen número de desarrolladores soportaron mi presentación sobre C++11 y todavía tuvieron energí para comenzar un turno de preguntas cuando eran las nueve de la noche.

Posteriormente pudimos compartir un vino español, también por gentileza de Indizen. Les estoy muy agradecido por una excelente organización, así como por la elección de un lugar tan agradable como el museo del ferrocarril.

Evidentemente, en dos horas solamente se pueden dar unas pinceladas de C++11, pero creo que la audiencia pudo obtener una visión general de los cambios. Y más de uno dijo en español, aquello que yo ya había oido a Herb Sutter (C++ feels like a new language). Y realmente lo es.

Comenzamos la presentación dando una visión general del propio proceso de normalización del lenguaje y poniéndolo en contexto.

Continuamos viendo algunas características que hacen C++11 algo más fácil de aprender y enseñar. Por supuesto, esto de la facilidad es opinable, pero hablamos de la nueva sintaxis de iniciación uniforme, la inferencia de tipos, los bucles basados en rango, las expresiones constantes, y los literales definidos por el usuario. Tratándose de desarrolladores para el sector financiero, y sabiendo que en esos entornos las simulaciones estocásticas en general (y las de Monte Carlo en particular) son una práctica habitual, no me pude resistir a comentar algo sobre la nueva biblioteca para generación de números y distribuciones aleatorias.

Dediqué otro bloque de la charla al patrón por excelencia en C++: RAII. Recordamos como el uso sistemático de este patrón es una buena receta para evitar los problemas de goteos de memoria en particular y de recursos en general. De aquí, pasamos a ver como la semántica de movimiento contribuye a simplificar este enfoque.

En cuanto a genericidad vimos las ventajas que introducen el uso de expresiones lambda y cómo esto permite hacer uso de los algoritmos genéricos de la STL de una forma más simple. Vimos algún uso de las plantillas con número variable de parámetros. También vimos ejemplos del uso de los alias de plantillas. Finalmente realizamos una pequeña introducción al modelo de concurrencia de C++11.

Apreveché la ocasión para presentar resultados concretos de como se puede hacer uso de nuevas prestaciones de C++11 para optimizar el rendimiento de aplicaciones y los resultados obtenidos en un caso concreto.

Finalmente, anuncié la celebración de un nuevo evento: el Dia C++, que celebraremos el próximo octubre ( noviembre) de 2013. Además, presenté el contenido de un curso de C++11 para desarrolladores C++. Es un curso intensivo de 20 horas que el grupo ARCOS ya ha impartido el pasado mayo como curso de formación interno en una empresa del sector de las telecomunicaciones.

Si tenéis interés, las transparencias están disponibles en:

https://sites.google.com/site/aviewoncomp/cpp11.pdf

No comments:

Post a Comment