Descobrint el C++ modern, 2a Ed

Autor: Peter Gottschling
Editorial: Addison-Wesley
Pàgines: 576
ISBN: 978-0136677642
Imprimeix: 0136677649
Kindle: B09HTJRJ3V
Públic: desenvolupadors de C++
Valoració: 5
Revisor: Mike James

C++ modern, qui voldria escriure una altra cosa? És una introducció adequada per a la resta de nosaltres?

El subtítol: Un curs intensiu per a científics, enginyers i programadors. indica que els exemples es refereixen principalment a la compressió de números, però això no hauria de ser un problema per a la majoria dels programadors.

El meu primer comentari és que aquest és un llibre estrany, en el bon sentit. És una estranya barreja de presentació de baix a dalt a l’estil, per exemple, de K&R més un estil molt conversador, ple d’observacions descobertes. Això fa que sigui una estranya barreja d’un manual de referència i una introducció discursiva a les idees. Si no pots fer front a l’estil de l’autor, aquest llibre no t’agradarà; personalment, el vaig trobar molt llegible. El que no vaig trobar llegible va ser el tipus de lletra i el paper utilitzat per a l’edició impresa. Per a un llibre car, sembla molt barat.

Aquesta segona edició s’ha actualitzat amb entrades en C++20 i no és una reescriptura o reorganització extensa.

La part del manual de referència de la presentació es pot ignorar majoritàriament quan només l’estàs llegint, però suposo que hi tornaràs tan aviat com et trobis amb alguna cosa inesperada durant la programació. A mesura que el llibre avança, l’aspecte de referència es fa cada cop menys i l’aspecte tutorial comença a dominar.

El capítol 1 comença amb els detalls de molt baix nivell de C++: constants, literals, operadors, expressions, funcions, tractament d’errors, etc. Si no teniu ni idea de com programar això no significarà res per a vosaltres. Fins i tot si programeu una mica en un llenguatge no tècnic com JavaScript, això serà massa dens i massa. Sempre que hagis trobat aquest material abans en un altre idioma no hi hauria d’haver cap problema i seràs conscient que la lectura senzilla, atenta als comentaris de l’autor és la millor manera d’arribar al capítol 2. Quan arribis al final del capítol introductori heu completat un curs intensiu sobre els fonaments de la llengua llegint un manual de referència anotat.

El capítol 2 s’inicia a les característiques orientades a objectes de C++: classes, membres, constructors, destructors, membres d’accés, sobrecàrrega d’operadors i molt més. L’estil aquí no és una referència i hi ha moltes discussions, com ara per a què serveix el constructor de còpies i per què és possible que vulgueu escriure’n. Tot el que és bastant obvi només se us presenta com a text de referència i només s’explica amb detall el menys que evident.

On creus que anirà l’autor? No més objectes sinó profunds en genèrics. La raó, només puc endevinar, és que per als científics i similars expressar algorismes d’una manera independent del tipus és una prioritat. Ho és, però encara és aviat perquè els genèrics apareguin amb tant de detall. El capítol 3 no només cobreix les idees bàsiques, sinó també algunes de les noves característiques de C++ “modernes”, com ara lambdas, plantilles variàdiques, conceptes, funtors, etc. En aquest punt tampoc no us podeu perdre el fet que els exemples són de matemàtiques aplicades – integració numèrica per exemple.

El capítol 4 presenta la biblioteca de plantilles estàndard, una altra vegada una bona opció per a un llibre dirigit al programador tècnic. Aquí aprenem no només sobre els contenidors, sinó sobre els nombres complexos, les tuples i les biblioteques que van més enllà de la biblioteca de plantilles estàndard amb un èmfasi matemàtic aplicat diferent: àlgebra lineal, OED, PDE i algorismes de gràfics.

El capítol 5 tracta sobre la metaprogramació que torna a ser “moderna” i no una cosa que tots els programadors de C++ voldrien conèixer amb tant detall: trets de tipus, excepcions condicionals, optimitzacions del compilador, etc. He trobat especialment interessant la secció de Meta-Tuning.

El capítol 6 torna a l’orientació a objectes, que fins ara ha jugat un paper menor tenint en compte el central que és per a C++, al cap i a la fi és el que fa que C++ sigui un pas més que C. En aquest capítol coneixem algunes idees molt avançades com l’herència múltiple. i moltes coses que haurien d’haver-se introduït molt abans al llibre: classes derivades, jerarquia de tipus d’herència, càsting, etc.

El capítol final i final del llibre tracta sobre projectes científics i aquí descobrim per a què l’autor està realment interessat a utilitzar C++. Els projectes tracten principalment de resoldre equacions diferencials. C++ és realment el nou Fortran?

També hi ha tres apèndixs que val la pena llegir. L’apèndix A ClumsyStuff és particularment interessant: una mena de capítol “el que lògicament no podria encaixar en un altre lloc”. Aquest apèndix es podria ampliar en un altre llibre.

Aquest és un llibre excel·lent sempre que no siguis un principiant complet i siguis científic o similar i estiguis especialment interessat en C++ com a llenguatge de programació numèric o científic. Si us trobeu fora d’aquest públic objectiu, el que us agradarà el llibre depèn completament de la distància que us trobeu. Crec que el programador general de C++ podria divertir-se molt llegint aquest llibre.

Per estar al dia amb la nostra cobertura de llibres per a programadors, seguiu @bookwatchiprog a Twitter o subscriu-te al canal RSS de I Programmer’s Books per a la nova incorporació de cada dia a Book Watch i per a noves ressenyes.

Bandera

.

Leave a Comment

Your email address will not be published. Required fields are marked *