Bookmark and Share

Imparare Javascript

Alcune riflessioni emerse durante mia esperienza di studio di Javascript

by Maurizio Lupo - 2010-03-12

L'informatica è la mia passione ed il mio lavoro. Chiuque sia del mestiere sa quanto sia importante la formazione (e l'autoformazione) in questo campo.

Una delle più grosse difficoltà, per me, è sempre stata quella di trovare della documentazione valida sui più disparati argomenti.

Internet contiene sicuramente tutte le informazioni necessarie ma talvolta lo scremare le cose interessanti da quelle obsolete o addirittura errate è una fastidiosa e frustrante perdita di tempo.

Solitamente mi trovo meglio con la documentazione cartacea. Un libro solitamente da una introduzione più organica ad un argomento e poi si può usare internet per gli approfondimenti.

Per quanto riguarda Javascript è persino difficile trovare una documentazione cartacea valida!!! Con questo non voglio dire che i manuali Javascript siano tutti spazzatura, molti semplicemente difettano di dettagli utili, insegnano con l'approccio sbagliato e promuovono cattive pratiche.

In questo senso sarebbe utile una guida (o anche un insegnante). Anche una sorta di "fratello maggiore" che mi avesse detto "studia quello", "quel libro è valido", "lascia perdere quello" ecc.

Dopo tanto pellegrinare tra libri e internet mi sono fatto le ossa da solo ed ora mi rendo conto di poter essere io quella "guida".

Per questo motivo, per non far ripetere ad altri il mio stesso "percorso ad ostacoli", voglio lasciare alcuni utili suggerimenti (una specie di piccolo vademecum) per imparare Javascript.

Come lo feci (ovvero come imparai Javascript)

Ecco quindi i miei suggerimenti:

1 - Javascript è importante

E' quasi superfluo sottolineare che le applicazioni web2.0 si distinguono proprio per la forte presenza di scripting lato client (oltre che per la componente "social"). Basta vedere esempi come gmail, facebook, google docs ecc.

La tendenza non accenna a cambiare, anzi spesso vediamo Javascript come linguaggio di scripting in altri ambiti: nei pdf, su kde ecc.

2 - Javascript è bello !

Javascript è il linguaggio più incompreso del mondo. Sembra Java ma è completamente diverso, ha purtroppo alcuni errori di progettazione e le incompatibilità tra i browser rendono difficile far funzionare i nostri script.

Per questi motivo questo linguaggio ha una pessima fama tra gli sviluppatori.

In realtà Javascript è un linguaggio funzionale (più simile a Lisp che a Java!!!) con una sintassi molto espressiva ed elegante.

3 - Disimparate quello avete imparato

Dimenticate la programmazione object oriented tradizionale. Javascript ha oggetti ma non ha classi !!!

L'ereditarietà è di tipo prototipale. Gli oggetti ereditano da altri oggetti.

La parola chiave "this" spesso non indica l'oggetto d'appartenenza.

Lo scope delle variabili è a livello di funzione e non di blocco

Si usano diffusamente costrutti e pattern tipici della programmazione funzionale: closure, decoratori, iteratori ecc.

4 - Imparate solo il necessario

Come detto precedentemente Javascript contiene degli errori di progettazione che rendono alcune funzionalità del linguaggio scomode e inutili. Imparate quindi solo quelle che sono considerate le "buone pratiche".

Per questo vi indico un nome "Douglas Crockford": è un "luminare" di javascript e ha scritto un libro "Javascript: the good parts" che segue proprio questo approccio (c'è anche in Italiano pubblicato da "tecniche nuove").

5 - Non rompetevi la testa sulle incompatibilità tra browser: Imparate una libreria !

Molte librerie Javascript hanno proprio questo scopo. Io ho imparato JQuery (su questa non avrete difficoltà a trovare documentazione on-line e libri) e mi trovo benissimo. Astrae le incompatibilità e permette di aggiungere molti utili effetti.

6 - Provate!!!!

Studiando qualcosa è utile provare ciò che state imparando. In questo caso può essere di grandissima utilità firebug (una famosa estensione per firefox). Tra le tante utili funzioni è dotato di un interprete interattivo con il quale fare pratica.

Epilogo

Alla fine io ho imparato. Voi cosa aspettate ?