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.