-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 
Andrew L. Johnson Versione stampabile.
Elements of Programming with Perl
1884777805 - Manning - 1999 - 34,95 USD

Recensione di dree Punteggio: 3.5/5

I libri dedicati all'introduzione alla programmazione in genere non utilizzano un linguaggio di programmazione vero e proprio come il Perl o il C. Utilizzano piuttosto il pseudocodice, una sorta di linguaggio generalizzato utilizzato per la descrizione degli algoritmi.

Negli intenti dell'autore, Elements of Programming with Perl (Manning, Ottobre 1999, 348 pagine) vuole introdurre ai concetti della programmazione utilizzando Perl. Si vogliono dunque presentare gli elementi di base della programmazione, con il Perl (invece del solo pseudocodice) a fare da cornice e sostegno all'insieme. Non viene richiesto quasi nessun prerequisito al lettore: secondo l'autore non è necessaria alcuna precedente conoscenza di programmazione. E proprio a tali lettori è stato indirizzato il volume.

Elements of Programming with Perl è diviso in quattro sezioni. Nella prima parte introduttiva troviamo tre capitoli dedicati alle informazioni di base sulla programmazione ed il linguaggio Perl. La seconda sezione è dedicata agli aspetti essenziali, dunque le strutture ed i concetti necessari alla realizzazione di un normale programma (variabili, istruzioni per il controllo del flusso, etc). La terza parte è dedicata agli elementi più pratici e specifici del Perl, quali le espressioni regolari, il trattamento di stringhe e liste, l'utilizzo dei moduli etc. L'ultima sezione tratta invece gli aspetti più avanzati della programmazione come la programmazione modulare, gli algoritmi e le strutture dati complesse (algoritmi di ordinamento, alberi binari, heap), la Programmazione Orientata agli Oggetti (OOP). Infine troviamo 4 brevissime appendici (ed un glossario) sugli switch Perl in linea di comando, le variabili speciali, le fonti di informazioni sul Perl e sui formati numerici.

L'introduzione inizia adeguatamente, con degli esempi che utilizzano paragoni con il mondo reale per avviare al concetto di programma. Si parla anche di Perl, della sua natura di linguaggio interpretato/compilato, di come poterlo avviare e come trovare documentazione adatta.

Ma già al secondo capitolo, senza aver introdotto alcuna struttura dati o altri concetti base, troviamo un capitolo dedicato all'identazione dei programmi, al modo corretto di nominare le variabili (con appena un accenno nel definire cosa sono), all'utilizzo corretto dei commenti e a quello di "strict" come sano modus operandi.

Il capitolo due in questa posizione è a mio parere mal posto. Credo che un utente che si avvicini per la prima volta alla programmazione sia disorientato nel trovare delle linee di codice, per lui sicuramente astruse, commentate con delle frasi tipo "non preoccupatevi se non capite, il codice serve solo da esempio. Capirete dopo, fissate l'idea". Il capitolo due è ben scritto ma credo che sarebbe stato più conveniente utilizzarlo come buon capitolo di appendice.

Nel terzo capitolo si comincia già a fare sul serio con un primo programma, per focalizzare in maniera pratica il "cos'è" la programmazione e dare un primo sentiero alle proprie idee. Si inizia dunque con la formalizzazione di un problema e la sua soluzione attraverso un tipo di pseudocodice valido e chiaro, preso in prestito dal Literate Programming (LP) di Knuth, che descrive in maniera incrementale ad un umano (piuttosto che ad un computer), i passi da fare per raggiungere l'obiettivo. A fine capitolo troviamo però l'implementazione in puro Perl dell'astrazione fornita da LP. Dunque c'è strict, degli until, delle espressioni regolari etc.

Di nuovo credo che non sia utile al lettore che non ha mai programmato, vedere del codice Perl reale, anche abbastanza complicato, senza che non gli sia mai stata introdotta alcuna nozione rigorosa. Si sarebbe potuto tralasciare l'implementazione in Perl, ed approfondire adeguatamente il valido esempio in pseudocodice. Pseudocodice (qui, positivamente, davvero molto lontano da un linguaggio di programmazione) che ritengo insostituibile nei primissimi passi verso la compresione dei concetti di base, del cosa significhi programmare.

La seconda sezione inizia invece in maniera più canonica con l'introduzione ai tipi di dati e alle variabili, con degli schemi esplicativi. Si continua poi con le istruzioni che controllano il flusso del programma (loop, if, etc) corredate da qualche diagramma di flusso (concetto quest'ultimo non presentato rigorosamente), gli operatori logici. Anche qui troviamo però un capitolo, il sesto, che parla di I/O e di text processing con un accenno alle espressioni regolari. Di nuovo mi sorgono dubbi sull'utilità nell'introduzione di argomenti piuttosto complicati così presto.

Nella terza parte i concetti si fanno via via più complicati (espressioni regolari, trattamento di liste, etc) e perfino un capitolo sull'utilizzo di moduli come LWP e CGI.pm. Continuo a ritenere scorretto il posizionamento di alcuni capitoli del libro: strumenti (che non sono propriamente concetti) potenti ed avanzati quali LWP e CGI.pm a mio avviso non dovrebbero nemmeno comparire in un testo esplicitamente dedicato a diradare i dubbi di un utente alle prime armi con la programmazione. Nella quarta parte la situazione ritorna alla normalità con una buona introduzione agli algoritmi e ai concetti più avanzati, come detto heap, sort, OOP, etc.

Del libro rimane la perplessità sulla sequenza con cui sono stati introdotti i diversi argomenti. Tra i tanti, utilizzare prima il codice e poi focalizzarne il concetto con un diagramma di flusso, o l'accenno troppo precoce di certi aspetti (ad esempio lo scoping delle variabili nei primi capitoli, senza aver dato ancora una definizione rigorosa di variabile) potrebbero portare ad un po' di confusione.

Se si guarda al libro secondo gli intenti dell'autore, ovvero come testo introduttivo alla programmazione, utilizzando cioè il Perl come un mezzo per arrivare al fine di saper programmare, credo non sia un prodotto riuscito. I capitoli iniziali mal posizionati e la trattazione non troppo approfondita degli elementi di base della programmazione, lo rendono a mio avviso troppo ostico per una persona che non ha mai programmato e ne voglia imparare l'arte con questo libro.

Se invece lo prendiamo con una introduzione al Perl, dunque la conoscenza di Perl come fine e gli accenni alla programmazione come mezzo per arrivare più facilmente a questo fine, allora il libro acquista significato e spessore. In quest'ottica, i diagrammi di flusso e le brevi focalizzazioni sulle nozioni di base della programmazione, rendono l'approccio al Perl più rilassato e completo.

Con una diversa disposizione dei capitoli iniziali e con magari un altro titolo del tipo "Learning Perl from the basics", questo libro sarebbe ben posizionato e valido.
Così com'è credo che possa trarre in inganno.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google