Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'evoluzione di Javascript

Commenti, link e risorse su un linguaggio che vive la sua seconda giovinezza
Commenti, link e risorse su un linguaggio che vive la sua seconda giovinezza
Link copiato negli appunti

In questo articolo esporrò alcune riflessioni sullo stato attuale di Javascript, citando risorse, articoli e tecniche che stanno contribuendo a rendere questo linguaggio di scripting sempre più maturo e diffuso.

Javascript sarà il protagonista, ma non l'attore unico di questo articolo che credo sia il primo tra i cinquanta e più che ho scritto qui su PRO che non riporta una riga di codice. La scrittura di questo articolo in forma piena esula dal suo scopo, e probabilmente ci vorrebbe un libro intero per esprimire tutto. È per questo che mi aiuterò con i link, usandoli come se fossero concetti oltre che valide risorse.

Prima di addentrarci nel vivo dell'articolo, una breve introduzione su uno degli argomenti che ritengo sia stato sempre presente nei miei articoli, seppur mai nominato: i Web Standards.

Breve introduzione ai Web Standards

Con il termine Web Standards, molto diffuso negli ultimi tempi, si indicano in generale le tecnologie per creare e interpretare la diffusione dei dati su internet, generalmente definite da un organo di promozione degli standard, ossia il W3C.

Rientrano in particolare nei web standards HTML, XHTML, CSS e il DOM. Non mi sento di entrare nel merito del tema HTML vs. XHTML, che esula troppo dagli scopi dell'articolo. In ogni caso, quale che sia la scelta, è importante utilizzare un linguaggio strict e affidare la presentazione dei contenuti interamente ai fogli di stile. Ritengo infatti che un buon 80% dei web standards è costituito dell'uso dei CSS.

Dai primi layout senza tabelle, comparsi ormai 4 o 5 anni fa (Bluerobot, Glish e Box lessons) i passi avanti fatti con i CSS sono enormi. Siti più leggeri, robusti, orientati ai contenuti e senza l'uso di tabelle per l'impaginazione.

Due articoli sui web standards che meritano un' attenta lettura sono Developing with Web Standards e The benefits of Web Standards. Inoltre, per capire che livello di confidenza avete con i web standards, ecco una lista di controllo, di cui è disponibile anche una traduzione italiana.

I web standards grazie ai CSS ci hanno introdotto alla separazione tra contenuto, struttura e separazione. Ma dove si colloca Javascript nei web standards? E qual è l'approccio per un suo uso intelligente? Sono due delle tante domande a cui proveremo a dare una risposta.

L'evoluzione di Javascript

Javascript è ormai un linguaggio maturo e quest'anno, come preannunciato da Simon Willison in 2005: the year of DOM, la sua popolarità e diffusione sono in costante aumento.

Sebbene AJAX sia una grande rivoluzione per le applicazioni web (e frameworks e librerie come Prototype, Rico, Javascript visal effects, e molte altre), in questo articolo parlerò di come Javascript si sia evoluto nel web design.

Anzitutto, disponiamo di ottime guide per scrivere codice moderno (Ten good practices for writing Javascript in 2005) e accessibile (Creating Accessible Javascript) e di ottimi tutorial sul Javascript non intrusivo (Unobtrusive Javascript).

In un modello di astrazione a livelli in cui contenuto e struttura sono compito dell'HTML e la presentazione è compito dei fogli di stile, a Javascript è stato assegnato il livello di comportamento (behaviour), mantenendo la filosofia di separazione cara ai web standards.

Allo stato attuale delle cose, e come indicato nelle recenti tecniche che elencherò tra breve, credo che ormai Javascript non possa essere più contenuto in un livello di comportamento e interazione in cui molto è fatto di eventi. Javascript può agire su contenuto, struttura e presentazione come indicato nell'ottimo articolo sul Javascript presentazionale. Javascript può infatti:

  1. Modificare il contenuto sotituendo testo con immagini
  2. Manipolare il contentenuto, rendendo ogni parte di esso editabile dall'utente
  3. Incorporare il contenuto quale Flash
  4. Rendere il contenuto interattivo trasformando una pagina in ua presentazione
  5. Aggiungere enfasi al contenuto con effetti visuali efficaci
  6. Fornire contenuto per una migliore presentazione incorporando dinamicamente font tramite filmati Flash
  7. Cambiare la presentazione attraverso uno style switcher
  8. Migliorare la presentazione di elementi di form
  9. Nifty Corners: miglioramenti e nuove funzionalità per ottenere angoli arrotondati senza immagini e senza markup aggiuntivo
  10. Trasformare la struttura di un layout intabellando i div
  11. Migliorare l'usabilita e forse anche l'accessibilità.

Molte delle tecniche qui presentate sono recenti. Sarà chiaro al lettore che questo linguaggio di scripting ha subito un'evoluzione notevole. Ma cosa possiamo fare con Javascript? E fino a dove può spingersi? Cerchiamo di dare una possibile risposta.

Javascript è un ottimo strumento per migliorare contenuto, presentazione, struttura, interazione e usabilità. Ma va considerato sempre come un extra: non può e non deve fornire questi variabili come unico mezzo, e in particolare non dovrebbe sacrificare l'accessibilità dei contenuti di un sito se per qualche motivo (es. browser obsoleti o Javascript disabilitato) non può girare. Siccome Javascript è un extra, mentre l'accessibilità ai contenuti è un fondamento, Javascript non dovrebbe pretendere di migliorare l'accessibilità.

Javascript è un valido mezzo per aggiungere struttura ed elementi con scarso contenuto semantico grazie al DOM, e può interagire in maniera eccellente con i CSS per migliorare la presentazione.

A proposito di separazione: dato che un modello a livelli si è rivelato negli ultimi tempi inadeguato per le potenzialità di Javascript, l'unica separazione necessaria è tra Javascript e l'HTML: si dovranno evitare il più possibile la gestione script in linea e gestione di eventi direttamente nell'html. Il posto ideale per il Javascript è in file esterni, ancora meglio se nella sezione head.

Infine, il Javascript moderno dovrebbe essere il più possibile cross-browser e costuito per lo più dal DOM. Pratiche quali il browser sniffing dovrebbero essere abbandonate a favore dell'object detection.

Ti consigliamo anche