JavaScript è uno dei linguaggi di programmazione più diffusi del mondo, ma è anche uno dei più sottovalutati. Doglas Crockford, uno dei padri del linguaggio ha scritto un libro intitolato Javascript: The Good Parts, per aiutare i programmatori a orientarsi fra gli elementi di sintassi che creano confusione e quelli che rendono il linguaggio potente.
Crockford ha anche tenuto una conferenza presso Google che è online su code.google.com.
Per Crockford, JavaScript è il linguaggio più mal compreso del mondo, forse perché i programmatori lo vedono come un linguaggio che non occorre studiare prima dell’uso.
Sicuramente, l’aspetto familiare della sintassi induce molti a sottovalutare le difficoltà , perché JavaScript somiglia al C e a Java, ma le differenze ci sono, sono significative e possono creare trappole per i programmatori troppo sicuri di sé.
Per fare un esempio, ecco qualcuno dei frammenti di codice presi dalla conferenza messo alla prova nell’utilissima shell Javascript che possiamo installare in Firefox, ma anche in Explorer e Safari.
Ecco un secondo esempio: se si fa riferimento a una proprietà non esistente di un oggetto, l’oggetto testato non restituisce un’eccezione, ma il valore undefined
. Se un programmatore confronta il valore con null, il test avrà successo.
o = new Object();
v = o.nonesistente;
if (v == null) {
// codice che sarà eseguito
}
In questo caso due errori si cancellano: null
non è il valore di una proprietà non esistente, ma quello di una proprietà che contiene null. Il test con null
però funziona perché la type coercion, la trasformazione automatica dei tipi, nasconde la differenza.
Per non confondere le acque si deve usare il test di uguaglianza con il triplo uguale ===.
Questo operatore salta la type coertion e dà risultati accurati, per esempio distinguendo null
e undefined
.
Avremo quindi:
undefined == null
true
undefined === null
false
Crockford è pronto a riconoscere che JavaScript ha delle aree mal progettate, come l’ambiguità dell’operatore +, che concatena e somma, o l’apertura a codice automodificante di eval. Ci sono però anche aree di straordinario interesse e di grande espressività in un linguaggio che riesce a essere utilizzato da esperti di programmazione e volenterosi del copia e incolla.
Il trucco, quindi sarebbe usare a fondo le “parti buone” del linguaggio.
Crockford ha tenuto di recente una conferenza negli uffici di Google, che è a disposizione del pubblico su code.google.com, purtroppo senza traduzione dall’Inglese.