#breBytes C++

Aprovechando la canícula, seguimos con nuestra versión light del repaso a la revista Byte de hace cuarenta años. Y suerte que nos hemos pasado al modelo light, porque el número de agosto del 86 no venía especialmente fuerte. Pero no puedo saltarme la sección de crítica de libros, porque ahí tenemos uno de los clásicos de la informática, la presentación de C++ por parte del creador del lenguaje, Bjarne Stroustrup. (Si no he buscado mal, la cuarta y última (de momento) edición se publicó en 2011.)

Book Reviews

THE C++ PROGRAMMING LANGUAGE

Reviewed by G. Michael Vose

One of the tenets of evolutionary theory states that changes in the environment cause subtle mutations in an organism that transform it into a new organism. The changing nature of the hardware environment of computers causes an analogous evolution of programming languages. Bjarne Stroustrup's The C++ Programming language describes one recent language mutation.

Following the example of its parent, Brian W. Kernighan and Dennis M. Ritchie's The C Programming language (also known as K&R or the "white" book), this book defines the superset of C called C++. Both books provide multiple chapter tutorials for their respective languages as well as the languages' official reference manuals. Both contain examples and exercises for readers to solve.

Stroustrup's book assumes a familiarity with C (referring the beginning reader to K&R) but is nearly 100 pages longer than the white book. C++ adds considerably to the complexity of an already obtuse lexicon. Furthermore, C++ provides the tools to allow an objectoriented approach to programming in C.

Evaluating a book like Stroustrup's is difficult because microcomputer implementations of C++ are just becoming available (see the What's New section). I have no concrete experience with the language and no facility for using the tutorial sections of the book. Therefore, the judgments I can make are limited to two areas: Does the book adequately describe the concepts of C++, and do the C++ extensions seem useful? The historical significance of both the book and the language will have to wait for the judgment of some future reviewer.

People familiar with C instantly recognize the significance of the name C++. C's increment operator is symbolized using two plus signs (++). The suggestion is that C++ increments the power of the language, and this is certainly true. But for many C programmers, adding new constructs takes a back seat to fixing some of the awkward aspects of the original language. The authors provide some of these fixes.

Programmers enjoy using C because of the freedom of expression it provides due to a rich set of operators and great flexibility in declaring and manipulating data types. C++ increases this freedom substantially by offering additional data types and constructs that permit programmers to more easily build complex data structures (a process known as data abstraction). The emphasis in C++ is on types and structure.

Y me tenéis que reconocer que es divertido leer la crítica de un libro en la que el revisor te dice cosas como que C++ suma considerablemente a la complejidad de un léxico ya obtuso (no seré yo el que le lleve la contraria, pero pegarle así a C…), para a continuación explicarte que evaluar el libro es complicado en ausencia de implementaciones de C++ (vamos, sin haber probado el lenguaje), y después explicar qué es eso de los objetos en programación (la orientación a objetos, como paradigma, data de finales de los cincuenta (del siglo pasado), pero no se había prodigado mucho hasta la llegada de C++ y sus diferentes «primos» (por mucho que Smalltalk ya llevase unos cuantos años corriendo por el mundo)). No está mal, por cierto, permitirse darse el lujo de darle una collejita a nada más y nada menos que Stroustrup (en aquel momento no era la leyenda que es hoy, claro) por permitirse el lujo de usar palabras como «clase» antes de definirlas. Ni dudar (razonablemente, dada la juventud y novedad de la cosa) del éxito de un lenguaje que, cuarenta años más tarde, se disputa la segunda posición del ranking de lenguajes de TIOBE con «papá C».

Se publica la crítica, por cierto, dentro de un número dedicado a la programación orientada a objetos (ya os decía que el tema comenzaba a popularizarse en aquella época) en el que escribe, entre otros, el creador de Objective C, el lenguaje de desarrollo para Apple hasta nada más y nada menos que 2014.

Si queréis seguir hojeando el número, en la misma sección de libros se critica también el Mind Over Machine del filósofo Hubert Dreyfus y su hermano Stuart, algo menos famoso pero aún así profesor emérito en Berkeley, que se dice pronto. El libro argumenta (siempre según la crítica) que nunca tendremos una verdadera inteligencia artificial porque los ordenadores carecen de intuición. La historia no se repite, pero rima, dicen. El crítico también se fija en un capítulo dedicado a los temores sobre la implantación de la IA en la educación. 1986.

Y también se puede recomendar, creo, pero para valientes, el discurso del recientemente fallecido Tony Hoare (ya premio Turing por aquel entonces), Mathematics of programming. Por aquello de incidir en que lo que se publicaba en los ochenta en revistas generalistas de informática tenía en muchas ocasiones un nivel estratosférico, entre otras cosas.

En fin. Algún otro día, más, pero como muy pronto, en septiembre.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.