Successivo

News

Le parti buone di JavaScript

Michele Costabile | 4 Marzo 2009

JavaScript è uno dei linguaggi di programmazione più diffusi del mondo, ma è anche uno dei più sottovalutati. Doglas Crockford, […]

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.

Eguaglianze JavaScript

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.

Eguaglianze JavaScript, 2

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.