Programming -- Principles and Practice Using C++ (3rd Edition)
- "Programming -- Principles and Practice Using C++ (3rd Edition)", publicado por Addison-Wesley, está programado para publicarse en abril de 2024
- ISBN: 978-0-13-830868-1
- Se puede comprar directamente en el sitio web de la editorial
Introducción al libro
- Este libro ayudará a cualquier persona dispuesta a esforzarse a aprender los principios básicos de la programación y a desarrollar habilidades prácticas necesarias para programar en el mundo real
- Las ediciones anteriores fueron utilizadas con éxito por miles de estudiantes
- Esta edición revisada tiene las siguientes características:
- Parte de la premisa de que el objetivo del lector es escribir programas suficientemente buenos como para que otras personas puedan usarlos y darles mantenimiento
- Se enfoca en conceptos y técnicas fundamentales más que en detalles técnicos ambiguos del lenguaje
- No es una introducción a un lenguaje de programación, sino una introducción a la programación en general, incluyendo programación procedural, orientada a objetos y genérica
- Cubre tanto técnicas de bajo nivel necesarias para usar el hardware eficientemente como técnicas modernas de alto nivel
- Proporciona una base sólida para usar y mantener tipos útiles, correctos y seguros, y para escribir código eficiente
- Está diseñado principalmente para personas sin experiencia en programación, pero programadores con experiencia también consideraron útiles las ediciones anteriores como introducción a conceptos y técnicas más efectivas
- Cubre ampliamente conceptos esenciales, diseño y técnicas de programación, características del lenguaje y bibliotecas
- Usa C++ moderno (C++20 y C++23)
- Trata el diseño y uso de tipos integrados y tipos definidos por el usuario, junto con entrada, salida, cálculo y gráficos/GUI sencillos
- Ofrece una introducción a los contenedores y algoritmos de la biblioteca estándar de C++
Sobre el autor
- Bjarne Stroustrup es el diseñador y el implementador original de C++, y autor de "The C++ Programming Language", "A Tour of C++" y muchas publicaciones populares y académicas
- Es profesor de ciencias de la computación en la Universidad de Columbia, en la ciudad de Nueva York
- El Dr. Stroustrup es miembro de la National Academy of Engineering de Estados Unidos y fellow de IEEE, ACM y CHM
- Ha recibido el Charles Stark Draper Prize 2018, el Computer Pioneer Award 2018 de la IEEE Computer Society y la IET Faraday Medal 2017
Introducción a PPP3
- "Programming: Principles and Practice using C++ (3rd Edition)" (PPP3) es un libro introductorio de programación para personas sin experiencia previa en programación
- También será útil para quienes tienen algo de experiencia y quieren mejorar su estilo y técnica, o simplemente aprender C++ moderno
- Fue diseñado para usarse en clase, pero está escrito desde la perspectiva de un tutorial
- Las versiones anteriores de este libro se usaron en Texas A&M University y en muchos otros lugares como base para el primer curso de programación de estudiantes de ingeniería eléctrica, ingeniería en computación y ciencias de la computación
- Quienes hayan visto PPP2 notarán que PPP3 tiene aproximadamente la mitad del tamaño. Para reducirlo, se hizo lo siguiente:
- Se reforzaron los capítulos básicos que normalmente se cubren en un curso semestral aprovechando partes clave de C++20 y C++23, y se reescribió el código de los capítulos de gráficos/GUI sobre la base de Qt para mejorar la portabilidad (por ejemplo, en navegadores y teléfonos)
- Los capítulos más especializados (conocidos en PPP2 como "broaden your view") se colocaron en la web para poder usarlos según se necesiten
- Se eliminó el material de referencia pura. Ahora se puede encontrar más material y más actualizado en la web (por ejemplo, cppreference.com)
- El material de apoyo de PPP2 sigue disponible (diapositivas de clase, código, etc.)
Muestras de PPP3
- Prefacio: lo que este libro promete y lo que no promete
- Tabla de contenido
- Capítulo 0: Unas palabras para el lector. Algunas notas sobre el enfoque adoptado en este libro
- Capítulo 10: Modelo de visualización. Capítulo de muestra. Si eres un principiante total, no leas este capítulo ahora mismo. Se publica para mostrarles a profesores y lectores con experiencia hasta dónde llega este libro en unas cinco semanas (suponiendo dos capítulos por semana). También sirve para presumir un poco de C++ moderno
Información de soporte
- Enlaces a implementaciones de C++ y entornos de desarrollo de software (junto con algunos consejos para empezar)
- Cómo usar módulos (incluida una explicación de cómo compilar el módulo PPP usando PPP_support.h)
- El módulo PPP para cuando se puedan usar módulos
- El encabezado "PPP.h" para usar los módulos std y PPP de la forma más sencilla
- El encabezado "PPPheaders.h" para cuando sea necesario volver a usar archivos de encabezado
- Soporte GUI, incluida la biblioteca de interfaz gráfica de usuario de PPP3 (en los capítulos 10-14). Para ejecutar este código es necesario instalar Qt. Consulta el manual de usuario
- Código de ejemplo de varios capítulos (TBD)
- Fe de erratas
- Diapositivas para clases actualizadas para PPP3 con base en PPP
- Guía de estilo de código de PPP
- Material para ejercicios (TBD)
Capítulos de PPP2
- Estos capítulos fueron escritos usando C++14 y no C++23, pero siguen siendo correctos y presentan los temas de manera razonable
- Capítulo 1: Computadoras, personas y programación
- Capítulo 11: Personalización de entrada/salida
- Capítulo 22: Ideales e historia
- Capítulo 23: Procesamiento de texto
- Capítulo 24: Cálculo numérico
- Capítulo 25: Programación de sistemas embebidos
- Capítulo 26: Pruebas
- Capítulo 27: El lenguaje de programación C
- Glosario
Traducciones
- Aún no hay ninguna. Para las traducciones de la edición anterior, consulta la página de portada de los libros del autor
Opinión de GN⁺
- PPP fue un libro muy conocido para introducirse a la programación, y ahora llega una tercera edición que aprovecha C++20/23 y reorganiza/reduce fuertemente el contenido. Es una noticia bienvenida.
- En particular, el rediseño completo de la parte de GUI con base en Qt puede verse como un ejemplo de cómo Qt se ha consolidado como el framework GUI de facto en el ecosistema de C++.
- Parece que incorpora activamente tecnologías modernas de C++, como la modularización, y que también fortalece la integración con la web. En especial, que exista una versión que pueda ejecutarse directamente en el navegador lo hace ideal para uso educativo.
- Aun así, como usa C++ moderno, también parece posible que los principiantes se confundan. Para empezar, quizá siga siendo mejor usar un C++ de estilo C para quienes son totalmente nuevos.
- Como el autor, Bjarne, es el creador de C++ y ha liderado su estandarización, parece que será una de las obras con mayor autoridad. No solo los principiantes, también los expertos podrán aprender de las best practices y consejos de uso seleccionados por Bjarne.
1 comentarios
Opiniones en Hacker News
Se plantean preocupaciones sobre que la función de módulos de C++20 todavía no está completamente soportada por la mayoría de los compiladores, por lo que
import std;no funciona. Esto podría confundir a los principiantes.El uso de Qt en lugar de FLTK en el capítulo de GUI es un cambio importante, y se espera que sea bien recibido porque Qt se usa ampliamente en la industria. Aun así, no está claro qué impacto tendrá en la curva de aprendizaje.
En el código de Stroustrup se usa
using namespace std;, lo que permite omitir el prefijostd::y mejora la legibilidad del código.Se cuestiona que en el código de Stroustrup no se use de manera consistente un espacio después de
#include.En el pasado, C++ se usaba para manejar casi todo, como la UI y el parseo de API, pero hoy su lugar ha bajado dentro del stack de desarrollo.
Hay quien estudió a fondo versiones anteriores de este libro y comenta que le ayudó mucho a mejorar su comprensión de C++. Sin embargo, también había muchas personas que escribían código en C++ sin leer libros como este.
Se presenta un libro llamado "C++ Annotations" que contiene información actualizada sobre C++.
La cantidad de páginas y el peso de la 3.ª edición se redujeron aproximadamente a la mitad en comparación con la 2.ª edición.
La extensión se redujo porque se eliminó la sección 'Part IV: Broadening the View' de la 2.ª edición, y ese contenido puede verse en línea. Los temas que usan C++11/14 siguen siendo vigentes.
Se pide consejo sobre el problema de que
import std;no funciona, ya que es difícil encontrar un IDE o compilador que soporte C++20.