Acquistai Programming Ruby oltre un anno fa, quando decisi che era arrivato il momento (si fa per dire, dato che il tempo è sempre uno degli elementi più carenti!) di approfondire un linguaggio tra Ruby e Python. Tra tutti i libri su Ruby individuati, Programming Ruby mi era parsa la scelta più completa e così è: più di un libro, una enciclopedia completa sul linguaggio Ruby e le sue librerie.
Il libro si suddivide in 4 macro aree.
Facets of Ruby è una introduzione al linguaggio ed alla sua sintassi. Contiene alcuni riferimenti alla programmazione ad oggetti, alla struttura di Ruby compresi moduli, classi, metodi, espressioni ed eccezioni. Verso la fine del capitolo è affrontato l’argomento dei thread e processi per consentire l’elaborazione parallela di più esecuzioni. Interessante, ma purtroppo poco chiaro.
Nella seconda parte, Ruby in Its Settings, il libro prende in esame Ruby e tutto quanto ruota attorno.
Interagire con la IRB, Ruby ed il Web, il gestore dei pacchetti RubyGems e le interfacce grafiche. Un capitolo intero è dedicato a Ruby e Microsoft Windows così come uno, decisamente avanzato, per documentare la creazione di estensioni personalizzate in C. Decisamente interessante il capitolo su come documentare Ruby via RDoc. Si tratta della referenza in assoluto più completa che abbia letto fino ad ora ma, come stupirsi… l’autore del libro è il papà di RDoc!
Il terzo capitolo si chiama Ruby Cristallized ed è un approfondimento alla natura di Ruby, sintassi e proprietà. In molti casi le informazioni sono in overlap con il primo capitolo. A mio avviso questo è uno dei lati negativi di questa pubblicazione che avrebbe potuto essere evitato. In realtà obiettivo di questo capitolo è analizzare più nel dettaglio aspetti evoluti di Ruby, ma le ripetizioni non mancano ed in alcuni casi si tratta di informazioni che avrebbero potuto essere utili ai lettori del primo capitolo.
Il titolo Ruby Library Reference non lascia dubbi sul contenuto del quarto capitolo. Si tratta della pubblicazione della documentazione completa dei moduli e delle classi core di Ruby. Senz’altro non è agevole quanto la versione online ma rappresenta un’eccezionale soluzione in mancanza di una connessione internet.
In conclusione, ritengo Programming Ruby un’eccellente risorsa per quanti desiderano approciare la conoscenza di Ruby. Per apprezzare al meglio la pubblicazione è raccomandato un background di programmazione, meglio ancora se object oriented.
Aggiornamento 2013: è disponibile una nuova edizione aggiornata a Ruby 2.0!