Bene, continuiamo con i libri… sto prendendo tempo per quello, monumentale, del Dottor Cecchelli, ma sempre a proposito di veri e propri monumenti desidero qui presentarne uno che davvero è destinato a lasciar traccia per lungo tempo nel suo campo. No, non stiamo parlando di scacchi, una volta tanto no… stiamo parlando di Java, che, diciamolo immediatamente, nell’ambito dei linguaggi di programmazione in ambiente informatico è il linguaggio principe, quello per così dire più blasonato, più elegante, più universale e, diciamolo chiaramente, più potente. Sì, c’è il C++, più antico e, qualcuno sostiene, più diffuso… c’è Python, che altri dicon esser più facile per accostarsi a questo meraviglioso mondo, ma Java comunque è sempre lì: multipiattaforma, ricchissimo, affascinante… se bisogna imparare un solo linguaggio questo è senza dubbio Java, come l’inglese per viaggiare o nel mondo tecnico. Se conosci l’inglese te la cavi benissimo ovunque, se sai programmare in Java puoi lavorare ovunque. E di libri scritti negli anni su Java ne sono usciti, non dozzine ma qualche centinaia, alcuni utili e validi, molti decisamente meno. Java è nel mondo informatico come la Siciliana o la Ruy Lopez negli scacchi: tonnellate di materiale a cui attingere, facile perdersi, ancor più facile sprecar energie leggendo e studiando letteratura tecnica destinata rapidamente a diventar obsoleta e inutile. Così mentre per la Siciliana e la Spagnola negli scacchi i testi davvero fondamentali sono davvero pochi, di fatto quelli che espongono in maniera nitida e chiara, concetti, piani e idee, quelli che dedicati a Java rimangono negli anni sono, forse, ancora meno. Tra questi indubbiamente quelli di Walter Savitch. Perché?!? Perché lo scienziato e matematico americano, oltre a esser una delle indiscusse autorità nel settore, possiede il dono che davvero pochi hanno: quello di render semplici le cose apparentemente più astruse e difficili. Procede per gradi, passo dopo passo, senza dar nulla per scontato, partendo da zero per arrivar ai concetti e strumenti più avanzati. I due testi fondamentali a cui mi riferisco, purtroppo disponibili solo in lingua inglese sono Absolute Java (la sesta edizione) e Java: An Introduction to Problem Solving and Programming (l’ottava edizione) entrambi pubblicati da Pearson, una delle più grandi e rinomate case editrici in campo tecnico. Il volume che desidero presentare la terza attesissima edizione di Programmazione di base e avanzata con Java, compendio e revisione insieme dei due testi qui sopra citati. Il merito di questo sforzo editoriale è essenzialmente della professoressa Daniela Micucci, titolare della cattedra di Sistemi di elaborazione delle informazioni presso l’Università degli Studi di Milano – Bicocca e riferimento assoluto a livello internazionale nel settore dell’ingegneria del software. La Professoressa Micucci è riuscita nell’ardua impresa di riunire, in un solo volume, finalmente fruibile anche in lingua italiana, i lavori e le opere di Walter Savitch. Il risultato di quest’improba fatica è un ponderoso volume di quasi 900 pagine la cui lunghezza tuttavia non s’avverte minimamente nello studio di questo testo. Dal punto di vista didattico e pedagogico infatti si tratta di un libro eccezionale che conduce, come detto, per mano, passo dopo passo lo studente o anche il semplice appassionato lungo l’affascinante viaggio alla scoperta di questo meraviglioso linguaggio. Non solo, ma imparare Java, in questo modo, è la chiave per imparare pressoché tutti gli altri principali linguaggi cosiddetti ad oggetti perché i costrutti sono simili, le analogie sono evidenti, gli esempi numerosissimi. Per ogni capitolo poi vengono analizzati e discussi listati di codice sorgenti (come le partite istruttive per noi scacchisti) che costituiscono il banco di prova pratico ove innestar la teoria, ove far funzionar le cose, non sbattendoci aridamente la testa ma crescendo e maturando pagine dopo pagina, riga dopo riga. perché acquistar questa terza edizione se per esempio se ne ha una delle precedenti? Perché, come linguaggio, sia naturale o di programmazione, la materia evolve, si arricchisce, cresce, si amplia ed estende. Consideriamo per esempio le interfacce grafiche di Java: all’inizio c’era solo AWT, si potevano far tante belle cose ma si faceva fatica… pareva quasi una collezione di librerie per iniziati, adepti o sciamani del software, poi è arrivato SWING, estensione e miglioramento di AWT, e le cose sono andate decisamente meglio, ora c’è JavaFX, ancora meglio…. ma impare per utilizzare richiede uno strumento: lo studio di qualcosa da cui partire, e sul testo di Savitch e Micucci questo c’è, al capitolo 18, disponibile come contenuto extra e gratuitamente accessibile online come plus del libro, così come l’accesso per 18 mesi alla piattaforma MyLab da cui scaricare il testo del libro, tutti i codici sorgenti, gli esempi e molto altro ancora. Vogliamo invece prendere in considezione le ultime features di Java? Le Lambdas expressions per esempio? (Per inciso, esaminando ogni libro recente su Java, parto sempre da quest’argomento, che è avanzato e se spiegato male confonde e basta). Ecco, chi era fermo ad un’edizione precedente dell’opera doveva accontentarsi delle cosiddette classi anonime, utilissime per carità, ma quest’estensione del linguaggio, arrivata solo con la versione 8 di Java, non era descritta. Finalmente, nel capitolo 17, nel troviamo una spiegazione davvero ben fatta, così come per gli stream. Cosa sono?? No, non ve lo dico io…. rovinerei e sciuperei tutto… vi rimando, a passo di Java, alla lettura di questo affascinante libro che consiglio davvero a tutti: scacchisti, programmatori o semplici appassionati di informatica e scienze in generale…