Tutorial sui tutorial :)

Essendo un'opinione personale, non prendetevela!

Ultimamente sono stato impegnato nello studio del Php. Il linguaggio di per se' e' semplice, con strutture sintattiche che ricordano da vicino il Perl.

Essendo gia' un conoscitore di altri linguaggi di programmazione e scripting, non avevo bisogno di essere sommerso da discorsi fiume a proposito delle strutture base della programmazione, bensi' di qualche imbeccata che mettesse in luce le peculiarita' di questo linguaggio di programmazione.
Purtroppo quasi tutti i tutorial che si trovano in rete sono dedicati a principianti (o poco piu') e sono, a mio parere, inadatte per chi ha gia' esperienza con altri linguaggi di programmazione.
Prima di cavare un ragno dal buco bisogna setacciare il testo alla ricerca di quelle poche informazioni che interessano veramente.

Questo non e' l'unica pecca che ho riscontrato in documenti similiche parecchie volte presentano difetti che li rendono inefficienti, non solo per chi ha gia' esperienza, ma anche per i novizi. Faro' alcuni esempi!

Vita morte e miracoli
Puo' essere utile e ha pure un discreto fascino inquadrare storicamente la genesi di un linguaggio di programmazione, di come ha conquistato consensi e quote di mercato. Purtroppo, ai fini della produttivita', tutto questo e' perdita di tempo, soprattutto quando in questi preamboli si esaltano gli sviluppatori del portentoso linguaggio di programmazione in oggetto racontandone miti e leggende.
Sarebbe forse meglio, per queste cose, rimandare a wikipedia o al sito del linguaggio in questione.
Un linguaggio andrebbe introdotto spiegando:
  1. perche' e' stato sviluppato;
  2. cosa fa;
  3. cosa non fa;
  4. per chi e' utile;
  5. per chi e' inutile.
Conosco colleghi che hanno iniziato a fare calcolo numerico in Perl. Nulla glielo vieta, ma c'e' sicuramente di meglio. Fossero stati messi sul chi va la' per tempo magari avrebbero scelto un'altra strada. Ora e' troppo tardi, sono abituati ad usare quello e vanno avanti con il paraocchi.

Prolissita' iniziale
Quasi tutti i tutorial partono con un capitolo che spiega come installare il software necessario, quando sarebbe piu' che sufficiente spiegare cosa installare, magari con qualche nota su eventuali configurazioni.
Sarebbe buona (esalando) prassi che chi programma sapesse gia' come fare ad installare un pacchetto software, in caso contrario dovrebbe prima colmare queste lacune.
In aggiunta il modo migliore per installare un software dipende dal sistema operativo che avete sottomano e spesso il metodo di installazione proposto (la compilazione dei sorgenti) e' mostruosamente complicato rispetto alle alternative disponibili.

Faccio un esempio: uso mandriva, sono un pischello a digiuno di programmazione, voglio installarmi un compilatore. Piuttosto che scaricarne i sorgenti per compilarli e' decisamente meglio che usi il gestore di pacchetti che ho a disposizione (urpmi e la sua interfaccia grafica rpmdrake) per installare i binari gia' compilati. Altrimenti, tra dipendenze non risolte e librerie di sviluppo che verranno a mancare, rischio di non venirne piu' fuori!
La ricompilazione diventa necessaria solo in casi particolari che molto difficilmente interesseranno chi e' alle prime armi.

Proposta
Chi si approccia ad un linguaggio di programmazione lo fa per elaborare dati. Quindi un tutorial dovrebbe iniziare spiegando come leggere i dati, come immagazzinarli nei tipi base (stringhe, numeri, array, ecc...), e come restituirli elaborati.

In seguito si dovrebbe istruire il lettore su:
  1. come usare la libreria standard;
  2. tipi di dati piu ' complessi come classi e strutture;
  3. utilizzo di pacchetti aggiuntivi
Chi invece sa gia' programmare ha bisogno di conoscere le peculiarita' sintattiche del linguaggio, oltre ovviamente alla documentazione relativa alle librerie standard.

Spero in breve tempo di riuscire a postare un contributo esemplificativo delle idee espresse in questo post.

Nessun commento: