Claudio Brotto

Codice di esempio nei libri di informatica

Sto leggendo Programming ASP.NET, scritto da Jesse Liberty ed edito da O'Reilly.

E' un compendio, piuttosto corposo, sulle caratteritistiche di ... immaginate un po' ... ASP.NET.

Ora, al di là della validità dei contenuti, che non mi interessa in questa discussione, la lettura mi ha dato lo spunto per una considerazione.

Tutti (tutti !) gli esempi sono riportati in duplice veste: C# e VB.NET.

Il che, nella prefazione, è segnalato come un pregio del volume in questione, che consente una facile comprensione ai programmatori di entrambe le estrazioni (a volte si farebbe meglio a parlare di "fedi", ma questo è un altro discorso).

Personalmente, non sono d'accordo con questo approccio.

Il motivo è semplice: la prefazione stessa indica, nella sezione Who this book is for , che il libro si rivolge a programmatori che hanno almeno una minima dimestichezza con uno dei due linguaggi in questione. Se questa dimestichezza manca (per esempio se i lettori conoscono solo C++ o solo Java), l'autore rimanda ad altri volumi specifici per il linguaggio. Ovviamente vengono segnalati volumi nella stessa catena editoriale, e questo è assolutamente logico e giustificato.

Beh, non ci piove: un testo che illustra ASP.NET (o ADO.NET, o la Security nel CLR, e chi più ne ha più ne metta, limitandosi alla piattaforma .NET che è, appunto, multilinguaggio ) non si può preoccupare di spiegare anche la sintassi di C# o VB.NET.

Esistono volumi appositi, che inevitabilmente risultano più completi e, in questo caso, di riferimento, tanto è vero che sono "referenziati" nell'introduzione.

Ciò che è sufficiente per comprendere gli esempi è una minima conoscenza delle caratteristiche di base del linguaggio: dichiarazione di tipi e variabili, semplici costrutti condizionali, sintassi per effettuare un cast, sintassi per la gestione delle eccezioni, ...

Una volta assodato che il lettore è in grado di comprendere queste caratteristiche, l'attenzione si rivolge alla descrizione della piattaforma, o della parte della piattaforma che viene presa in considerazione.

Il linguaggio è uno strumento , in questo caso. Che serve perchè, in fin dei conti, è quello che andremo a scrivere, è il mezzo per utilizzare le funzionalità della piattaforma (almeno in questo contesto !).

Generalmente chi studia un aspetto della piattaforma in questione conosce già, almeno un pochino, lo strumento.

Se così non è, giustamente si rimanda ad un testo specifico. Che magari illustri anche quelle caratteristiche che del linguaggio, strettamente parlando, non sono (le eccezioni o il sistema dei tipi sono caratteristiche dell'ambiente virtuale, che ovviamente vengono illustrate di pari passo con le spiegazioni sul modo in cui il linugaggio le rende utilizzabili).

Quindi ...

Caso 1: il lettore non conosce alcun linguaggio. Probabilmente non conosce .NET in generale. Meglio partire da un altro volume.

Caso 2: il lettore conosce solo un linguaggio. Probabilmente conosce però, almeno un pochettino, le caratteristiche della piattaforma. Con un capitolo introduttivo da dieci pagine è in grado di comprendere anche un altro linguaggio.

Caso 3: il lettore conosce entrambi i linguaggi. Che bisogno c'è di riportare gli esempi duplicati ?

Io, per esempio, ricado nel caso 2.

Non ho quasi mai utilizzato VB prima di .NET, non ho mai utilizzato VB.NET, ho letto qualche esempio qua e là. Conosco C#.

Non credo di essere un genio, però se leggo codice in VB.NET che mi illustra ASP.NET, magari dopo una ripassatina fornita dal capitolo introduttivo di cui sopra, non credo neanche di avere troppi problemi ad andare avanti.

Risultato: compro un libro da 1000 pagine che poteva essere tranquillamente da 700.

Ora, sulla copertina è riportato, ben in evidenza: ".... with C# and VB.NET".

Cioè: il libro si rivolge ad un pubblico di entrambe le estrazioni.

E' ovvio che si cerchi di avere il numero maggiore possibile di lettori/acquirenti. Però un programmatore C# che deve studiare ASP.NET non dovrebbe escludere dalla lista di potenziali libri quelli che riportano gli esempi in VB. E vicecersa, ovviamente.

Perchè magari ne perde alcuni ben scritti e completi.

Capisco la ragione editoriale, ci mancherebbe. Non dimentichiamoci che si parla sempre e comunque di vendite.

Però così il peso (inteso in numero di pagine) di un volume si ingigantisce. E il prezzo, credo, un po' ne dovrebbe risentire ...

Nota di fine Post.

Esistono in commercio volumi (belli, fra l'altro) editi in due versioni differenti, per VB e C#.

A memoria mi vengono in mente il libro di Richter (Applied Ms .NET Framework Programming) e quello di Ingo Rammer (Advanced .NET Remoting), che sono entrambi usciti in una prima versione con codice in C# e sono stati affiancati più tardi dal cugino in VB.NET.

Non posseggo nessuna delle versioni VB, ma entrambe quelle in C#.

Dal mio punto di vista, ha forse più senso la prima della seconda, perchè gli argomenti sono maggiormente sensibili alle differenze di linguaggio (overload di operatori, indicizzatori, eccezioni con filtro, ...).

Evidentemente la tematica della scelta del linguaggio è molto sentita e, talvolta, affrontata in maniera diversa dalle case editrici (o dagli autori).

Che ne pensate ? I commenti sono aperti.

powered by IMHO 1.2

Posted: apr 16 2005, 02.34 by devlizard
Filed under: