Historia de C++ (Diseño y evolución)

·A History of C++: 1979-1991

·The Design and Evolution of C++

·Evolving a language in and for the real world: C++ 1991-2006

·Design Rationale for C++/CLI (Existe versión en castellano traducida por Octavio Hernández y yo mismo).

Esta entrada iba a ser el comentario del libro The Design and Evolution of C++, pero al hacer referencia éste al primer paper, así como la segunda parte del mismo hacer referencia al libro, he decidido comentarlos todos de un golpe. Y ya de paso, también el Rationale de C++/CLI, que en cierta medida es la evolución de los tres anteriores ya que algunos aspectos de él se van a incluir en el próximo C++0x pero en relación al código nativo.

El primero de todos da un rápido repaso y justificación de C++ hasta su versión 2.0 y ciertos avances de la 3.0 y 3.1, momento en el que dejan de llamarse por un número y pasan a serlo por el año de estandarización. No obstante la antigüedad del documento, todavía conserva cierta frescura y continúa siendo plenamente válido como documento histórico y justificativo del nacimiento del C++. En él también encontramos explicaciones sobre el contenido de C++, desde los moldeos hasta las plantillas, pasando por la gestión de excepciones o la herencia múltiple.

El libro, The Design and Evolution of C++ expande el documento anterior y se centra en dos partes. En la primera vuelve a repasar la historia de C++ con mucho más detalle y atención, aunque curiosamente hay muchos párrafos del documento anterior repetidos al más puro estilo Herbert Schildt…

No obstante, lo mejor del libro es la segunda parte, en la que asistimos a detalladas explicaciones históricas y justificativas de todos y cada uno de los aspectos más importantes de C++, desde por qué no se implementó un recolector automático de basura hasta el motivo por el cual las plantillas no aparecieron hasta la versión 3.0 pese a estar diseñadas y previstas desde el mítico C con clases, pasando por la sobrecarga de operadores y otros muchos conceptos.

El libro se escribió en 1994, y desde entonces ha llovido, y mucho, para C++. El segundo paper, cierra hasta la fecha el ciclo, contándonos qué ha ocurrido desde 1991 hasta 2006, momento en el que se empieza a cerrar el nuevo estándar C++0x. Este documento es el menos técnico de los tres, pero importante para que veamos qué va a ocurrir en el próximo estándar, que si no pasa nada se refrenda este mismo año, 2009.

Por último, y solamente por afán de completitud, incluimos el Rationale de C++/CLI, en el que Sutter nos cuenta los por qué y los cómo de las extensiones CLI que, recordemos, pese a estar implementadas por Microsoft, son un estándar.

No recomiendo estos documentos a nadie que no esté interesado de verdad en C++, ya que son densos y presuponen que el lector está más que familiarizado con lo que se habla. Además, en ciertos momentos podrían llevar a confusión al lector inseguro de C++, ya que son documentos históricos –aunque no obsoletos- y tratan al C++ en sus aspectos evolutivos. Eso no quiere decir que lo que se cuente ya no sea así, sino simplemente que existen formas mucho más didácticas de explicar C++.

Sobre el párrafo anterior, el autor de esta entrada lo ha sufrido en sus carnes, ya que no es muy ducho en el tema de las plantillas (sabe usarlas y quizá crearlas si no son muy complejas) y al leer sobre las mismas en el libro ha terminado más confuso que instruido, por no decir que no se ha enterado mas que del primer párrafo y eso porque no trataba de ellas…

2 comentarios sobre “Historia de C++ (Diseño y evolución)”

  1. Para mí, The Design and Evolution of C++ es un libro que todo amante de C++ o de sus primos C# y Java debería leer. Lo atesoro en papel en mi biblioteca y la verdad es que es un libro que se disfruta cada vez que se relee.

    Excelente recopilación de documentos vitales para comprender la evolución de la familia C*.

    ¡Un saludo!

Responder a ohernandez Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *