Hemos leído: Bjarne Stroustrup: Programming. Principles and Practice Using C++

Programming: Principles and Practice Using C++En dos palabras: impresionante. La segunda es mamotreto de más de mil doscientas páginas, y el primer libro técnico que he leído que viene impreso a todo color.

El libro es un libro de aprendizaje para quien quiera iniciarse en el desarrollo y en C++, es decir, no presenta C++ como un lenguaje, sino que, a la vez que nos va explicando qué es y cómo se programa, lo va haciendo con C++.

Y eso significa que los punteros no se ven hasta la página seiscientos y pico, de las funciones típicas de C mejor no hablar, o más bien hablar de ellas en el último capítulo, tratadas como lo que son: obsoletas para un programador de C++, que tiene otras herramientas mucho más poderosas a su disposición.

EL libro es el mejor ejemplo que he podido ver que contrarresta la caduca y trasnochada falacia de que para aprender C++ primero hay que aprender C. Si todavía piensas así, léete el libro y verás.

Hay una cosa que siempre me ha molestado mucho. Y que conste que yo soy de los que aprendieron primero C y luego C++, no porque siguiera la regla falaz, sino porque cuando yo aprendí C, C++ era un animal mitológico casi en la cabeza del amigo Stroustrup. Recuerdo que se comentaba algo de un “C con clases”, de un metacompilador que traducía aquello a algo completamente ilegible que se suponía que era una mezcla de C y de preprocesador pero que sin embargo el compilador de C tragaba y generaba código. Hablamos de los tiempos del Turbo C 2.0. Ojo, Turbo C, no Turbo C++, ese vino luego. Y luego el Borland C++, en los tiempos mitológicos en los que Borland era alguien en el tema de los lenguajes de programación.

Vaya, me fui por los Cerros de Úbeda, debe ser cosa de la edad. Repitamos: hay una cosa que siempre me ha molestado mucho, es que es una lástima ver a chavalines con apenas conocimientos de programación pelearse con las funciones de C como printf y lo que es peor, con punteros. Así pronto se van a aburrir y van a pensar que C++ es algo enormemente difícil, y no es cierto.

Bueno, al menos no totalmente cierto. C++ es complejo. Pero no necesariamente uno tiene que ver esa complejidad el segundo día de clase. Y el libro lo demuestra plenamente. El capítulo sobre los punteros es antológico (recordemos, página seiscientos y pico, no cien), y el que explica la STL creando a mano y explicando la clase vector, también. Y el que trata sobre desarrollo de sistemas embebidos no tiene precio. Tampoco los tres o cuatro en los que explica la herencia y el polimorfismo mediante la creación de un envoltorio a parte de la biblioteca FLTK…

Vaya, realmente todos los capítulos son antológicos. Aparte de los conceptos sobre programación que no solo sirven para C++, el desarrollo de los mismos está completamente cuidado y, por primera vez en la historia de todos los libros básicos sobre programación que he leído, los ejemplos no son ejemplos chorra que luego no sirven para nada. Ya he dicho cómo envuelve la FLTK, cómo explica la STL construyendo una clase Vector que es homónima de la real y que tiene casi sus mismas características, pero no he dicho que las cadenas son, desde el primer momento, string (o más bien, basic_string<char>). Tampoco he dicho la cuidada forma en que parte de un diseño no válido y lo va mejorando paso a paso, explicándonos qué está mal y por qué (esa es otra, hacer que un aprendiz de C++ tenga que pelear con las cadenas de C (léase: de C) terminadas en nulo; es una aberración).

Por supuesto, la sempiterna calculadora que aparece en todos sus libros sigue estando, pero esta vez explica qué es una gramática y, a partir de ella, va refinando, paso a paso, el diseño original (que sólo es capaz de sumar y restar, y encima mal) hasta construir una calculadora capaz de realizar las operaciones básicas con un número indeterminado de agrupaciones con paréntesis y definición de variables y constantes. Ciertamente en algunos aspectos la construcción final no es la óptima ya que todavía no se ha visto la STL ni otros conceptos, pero el resultado es espectacular.

Quizás el arranque del mismo sea un poco fuerte para un estudiante novel, pero seguro que si lo termina y hace todos los ejercicios que vienen en él, estoy plenamente convencido de que cuando lo acabe, será un programador situado por encima de la media. Ojo, que no es un libro para aprenderlo en un mes, ni en dos, quizás en un año o incluso más, al menos si sigues y haces todos los ejercicios que vienen… Menos mal que uno ya pasó esa etapa, pero si tuviera que repetirla, indudablemente me gustaría hacerla con este libro como maestro.

7 comentarios sobre “Hemos leído: Bjarne Stroustrup: Programming. Principles and Practice Using C++”

  1. O, el de WPF lo tengo en «the pila», pero ni siquiera lo había abierto para mirarlo :-P, cosas de comprar 10 o 12 libros de una tacada en Amazon…

    Respecto al Bjarne, en lugar de usar negritas y cursivas usa colores, y aparecen algunas fotos espectaculares en las partes «filosóficas» por llamarlas de alguna forma.

    Lo que sí es cierto es que no importa lo bueno que seas programando y en C++, el libro está cojonudo y entetenido, como casi todo lo que escribe THE MAN como tu dices… Desde luego que si yo hubiera tenido ese libro cuando aprendí C++ por los tiempos del Borland, la curva habría sido mucho menos abrupta.

  2. Como te decia en el foro de VC, contento de que sea un buen libro (por mas que sea de aprendizaje que, como tambien te dije, no me molesta para nada al contrario). Y que bueno que se siga por la senda de que C++ es un lunguaje por si solo, que no se necesita aprender C previamente como mucha gente «mal educada» todavia cree e insiste.

    Muchas gracias por compartir la detallada crítica 🙂

    Saludos

  3. Parece que soy más viejo que vosotros. Yo recuerdo de unos libros de documentación, creo que del PDP 11/20 y demás modelos de Digital, que también utilizaban el color, pero no por motívos técnicos o estéticos.

    Tenían en rojo los apartados, en azul lo referente a unas cosas/modelos, en verde lo referente a otras/os y así continuamente con más colores. ¡Lo utilizaban para proteger la propiedad intelectual! Recuerdo unas notas que ponía al principio que más o menos decía que utilizaban los diferentes colores para dificultar el fotocopiado útil de los libros, acompañado del método correcto de pedir mas copias si se necesitaban. En aquella epoca todavía no existian las fotocopias de colores 🙂

    Gracias por la referencia del libro. Lo acabo de comprar y lo leeré. Siempre se está a tiempo de aprender algo más.

    saludos

  4. He recordado otro libro que utiliza colores (no me refiero a libros ilustrados). «La historia interminable» de Michael Ende.

    Evidentemente, no es un libro técnico: es un magnífico libro de ficción.

Responder a anonymous Cancelar respuesta

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