Anche in occasione dell’uscita della versione 3.0 (o 2008) di C#, la Hoepli si è sobbarcata l’immane compito di tradurre il monumentale volume della Wrox, “Professional C# 2008”, chiamandolo – come anche nelle precedenti occasioni – “Guida per lo sviluppatore”.
Recensire un’opera del genere non è facile, più che altro data la sua dimensione, non facilmente gestibile. Chi riesce a leggersi, riga dopo riga, oltre 1500 pagine? E a provare tutti gli esempi di codice che vengono presentati?
E poi si valuta il “reale” contenuto (quindi la versione originale, in sostanza) o la versione tradotta (con tutti i problemi che si può portare appresso)?
Forte di questi dilemmi, mi dividerò in due.
Per prima cosa parlo un attimo della versione inglese, da cui questo libro deriva, per poi dedicarmi all’effettivo libro in questione.
Per chi sviluppa in C#, la serie “Professional” della Wrox è una garanzia di sicurezza, quello è indubbio.
Sono tomi enormi, quasi omnicomprensivi di ciò che offre la versione del .NET Framework analizzata, e rappresentano la base su cui si formano schiere di programmatori.
Bisogna dire che dopo la prima edizione di questa serie di libri, risalente ormai al 2002, gli autori vivono ormai di rendita. Il “core” (mi si passi questo termine tecnico) del libro rimane sempre lo stesso, o con lievissime modifiche, e si aggiunge quel poco (o tanto) di novità che ogni versione si porta appresso. Anche gli esempi base sono sempre quelli, e spesso ci si ritrova a leggere le medesime frasi “copia&incollate” da una versione all’altra del libro. Chi possiede tutte e 3 le precedenti edizioni di questo libro, non avrà tardato ad accorgersi di avere le stesse pagine ripetute 3 volte.
È comunque una sorta di bibbia: quando si ha un dubbio, si sa che almeno una basilare risposta la si trova. Le descrizioni non mancano, e gli esempi sono quasi sempre calzanti e stimolanti. Per la sua mole si presta come “reference” da tenere accanto al pc nei momenti di bisogno, piuttosto che essere portato in giro nei propri spostamenti. Questa sua caratteristica ha, ovviamente, l’aspetto negativo di richiedere molto tempo per la sua lettura. Ogni capitolo si attesta, in media, sulle 50 pagine, e difficilmente si riesce a leggerne più di uno al giorno. Non è, in sostanza, il libro più indicato se si vuole apprendere le basi del linguaggio in pochi giorni. A tale scopo ci sono altri libri, di altre case editrici, maggiormente adatti a questa categoria di lettori.
D’altro canto non richiede esagerate competenze pregresse. La sua vastità gli permette di prendere per mano i lettori “beginner” come anche soddisfare la curiosità di chi ha maggiore esperienza e conosce già abbastanza bene il linguaggio.
Un’altra sua caratteristica, presente sin dalla prima versione di 7 anni fa, è che gli autori si soffermano sempre sulle differenze di comportamento di C# rispetto ad altri linguaggi come C++, Java e Visual Basic .NET.
Questa è una comodità in più per chi proviene da altri settori di sviluppo.
Un altro aspetto positivo è che affrontano non solo C# in quanto tale, ma anche come utilizzarlo in differenti scenari, che in altri manuali di questo tipo non sono presenti. Ad esempio lo sviluppo web con ASP.NET, i servizi di Windows, internet, ecc.
Il fatto poi che non faccia uno smodato uso di Visual Studio (a parte il capitolo ad esso dedicato), con screenshot dei vari passaggi, può essere visto come un pregio o un difetto a seconda dei gusti del lettore.
Non ci sono nemmeno procedure guidate passo per passo, sullo stile della collana “Step by step” della Microsoft Press. E nemmeno esercizi riepilogativi o domande a quiz a cui rispondere (sullo stile di alcuni testi della O’Reilly, ad esempio).
Tutto il discorso, insomma, è improntato ad un approccio puristico al linguaggio, senza farsi distrarre dai tool con cui lo si usa.
Il tipico utilizzo di un libro come questo è di non essere letto sequenzialmente, capitolo dopo capitolo (impresa che richiederebbe una considerevole quantità di tempo a disposizione), ma di concentrarsi su alcuni capitoli alla volta che riguardano gli argomenti che si vuole approfondire.
In questa nuova edizione viene dato largo spazio a LINQ, WPF, WCF e WF, le novità essenziali di questa nuova versione del framework, oltre a trattare ogni sfaccettatura del linguaggio in quanto tale.
Fatte queste premesse, credo si abbia un’idea più chiara della tipologia di questi testi.
A questo punto è difficile trovare in essi gravi aspetti negativi. Gli autori, infatti, sono delle vere eminenze in materia, e conoscono perfettamente l’argomento. L’impaginazione e la rilegatura della Wrox sono all’altezza della situazione. I pochi, e venali, “problemi” con cui mi ero riscontrato nelle precedenti edizioni erano legati per lo più ad una leggera prolissità in varie parti, come anche ad una scelta non ottimale (a mio modo di vedere, è ovvio) della successione dei vari capitoli.
Cosa cambia ora nella versione in italiano?
Innanzitutto noto che si sono perse circa 300 pagine. Nella versione originale il testo è di 1848 pagine, mentre nella versione tradotta sono 1558. Ma ciò può anche essere dovuto ad una maggiore “compressione” del testo. Basta allora osservare i due indici a confronto per capirne il motivo. Nella versione Wrox i capitoli sono 48, mentre nella versione italiana si riducono a 43. Ne mancano quindi 5.
Facendo il gioco delle differenze si scopre che sono stati esclusi i due capitoli dedicati ad ASP.NET, quello su Ajax, quello sui Visual Studio Tools per Office e quello sulla programmazione con SQL Server.
Immagino che, per contenere il numero di pagine all’interno di una dimensione accettabile, la Hoepli abbia deciso di “sacrificare” argomenti che, o vengono trattati in altri libri (quelli su ASP.NET e Ajax nell’altro libro “ASP.NET 3.5 – Guida per lo sviluppatore”), oppure hanno meno stretta attinenza con il linguaggio (i VSTO e SQL Server). Idee mie, non conosco le vere motivazione che può avere avuto la casa editrice nel fare questa scelta.
Tra l’altro anche le tre appendici presenti nella versione Wrox, non sono riuscite ad entrare nel testo Hoepli,
e nemmeno nel file specifico scaricabile dal sito (poi spiego il perché).
Il risultato comunque è di tutto rispetto: un librone di 1500 pagine e passa non si trova tutti i giorni e non passa inosservato.
Qualche problema si verifica nell’impaginazione e nel layout. Innanzitutto la qualità della carta: troppo liscia e sottile (non velina ma quasi). Questo, oltre a sacrificare un po’ la possibilità di prendere appunti in matita, conferisce al libro un peso specifico incredibilmente elevato. Arriva a pesare tantissimo, anche di più di libri ben più grossi. Provare per credere.
La copertina troppo sottile per le dimensioni di ciò che deve contenere è destinata inesorabilmente a disfarsi dopo poche settimane di utilizzo, a meno di non aver grande cura nel maneggiare il testo.
Ma è su come viene presentato il contenuto che non mi sono trovato molto bene. I primi testi Hoepli pubblicati nel 2002/2003 erano fatti molto bene, ma ultimamente la cura nell’impaginazione sembra che si sia persa un po’ per strada. Codice degli esempi scritto con una carattere troppo alto, troppo spaziato, troppo sottile e male indentato. Si legge davvero male, è indubbio.
Anche la scelta di utilizzare per le parole chiave un font con una dimensione più grande del testo circostante contribuisce a sfalsare le righe nei paragrafi, dando un’impressione di ondeggiamento.
La traduzione, pur nel complesso non malaccio, si lascia prendere la mano nella traduzione di termini altrimenti intraducibili. “LINQ to SQL” (che dovrebbe restare così) diventa “LINQ per SQL” (quasi da’ un certo fastidio all’orecchio). E fa un certo effetto leggere di “appartamenti” per il concetto di “apartment” nel capitolo sul threading.
Dal sito della Hoepli è possibile scaricare 5 file, il primo di appendice e gli altri riguardanti il codice dei vari capitoli.
Questo è l’elenco, con tra parentesi le dimensioni.
- Appendici.zip (2,57 MB)
- Cap. 1-12.zip (0,91 MB)
- Cap. 13-24.zip (25,5 MB)
- Cap. 25-36.zip (5 MB)
- Cap. 37-48.zip (11,8 MB)
Per quanto riguarda il codice dei vari capitoli, all’interno di ogni file zippato questi sono raggruppati per i capitoli di pertinenza (una sottocartella per capitolo). A seconda della complessità del capitolo stesso, ogni cartella potrà contenere altre sottocartelle, piuttosto che file singoli (come accade per i primi capitoli, i meno complessi del libro).
Per le appendici invece si verifica un problema. Uno si potrebbe aspettare che siano i pdf delle tre appendici della versione Wrox, tra l’altro piuttosto interessanti:
- Appendix A: ADO.NET Entity Framework.
- Appendix B: C#, Visual Basic, and C++/CLI.
- Appendix C: Windows Vista and Windows Server 2008.
E invece no. Sono gli esempi di codice utilizzati in queste appendici. Esempi che, a questo punto, saranno di un’utilità molto limitata. Peccato questa svista, che non so se sia voluta o meno.
Insomma, un consiglio per la casa editrice. Dalla prossima edizione della Wrox (prevista a marzo 2010), prestare più attenzione alla traduzione. Non aver paura nel lasciare qualche termine non tradotto, è giusto così.
Ricordarsi che se nella versione originale ci sono delle appendici, e si decide di non metterle nel libro per contenerne le dimensioni, bisogna renderle disponibili sul sito (come pdf completi, e non come codice sorgente).
E soprattutto migliorare decisamente impaginazione e qualità della carta.
Voto complessivo: 9/10 (per la versione inglese) – 5,5/10 (per la versione italiana)
Lettore: Intermedio
Sommario
Cap. 1: L'architettura .NET
Cap. 2: Le basi del C#
Cap. 3: Oggetti e tipi
Cap. 4: Ereditarietà
Cap. 5: Vettori
Cap. 6: Operatori e cast
Cap. 7: Delegate ed eventi
Cap. 8: Stringhe ed espressioni regolari
Cap. 9: I generici
Cap. 10: Collezioni
Cap. 11: Language Integrated Query
Cap. 12: Gestione della memoria a puntatori
Cap. 13: Reflection
Cap. 14: Errori ed eccezioni
Cap. 15: Visual studio 2008
Cap. 16: Distribuzione
Cap. 17: Gli Assembly
Cap. 18: Tracing e logging degli eventi
Cap. 19: Threading
Cap. 20: Sicurezza
Cap. 21: Localizzazione
Cap. 22: Transazioni
Cap. 23: Servizi di Windows
Cap. 24: Interoperabilità
Cap. 25: Gestione dei file e del registro di sistema
Cap. 26: Accesso ai dati
Cap. 27: LINQ per SQL
Cap. 28: Utilizzare XML
Cap. 29: LINQ per XML
Cap. 30: Windows form
Cap. 31: In dati in .NET
Cap. 32: Grafica con GDI+
Cap. 33: Windows Presentation Foundation
Cap. 34: WPF avanzato
Cap. 35: Add-in
Cap. 36: Accedere a Internet
Cap. 37: Windows Communication Foundation
Cap. 38: Windows Workflow Foundation
Cap. 39: Enterprise service
Cap. 40: Code di messaggi
Cap. 41: Servizi di directory
Cap. 42: Reti peer-to-peer
Cap. 43: Syndication.
Titolo: C# 2008 – Guida per lo sviluppatore
Autori: Nagel C., et alii
Editore: Hoepli
ISBN: 978-88-203-3738-4
Pagine: 1558
Prezzo: 59,90 €
Data di uscita: Lug. 2008