Il nuovo Javascript: separare l’azione dalla struttura

20 marzo 2006

Questo articolo è stato pubblicato originariamente su Digital Web Magazine (http://www.digital-web.com). Appare qui in traduzione con il permesso dell’editore.

Titolo originale: Separating bahavior and structure
URL: http://www.digital-web.com/articles/separating_behavior_and_structure_2/

In un articolo precedente ho espresso un certo timore per quei “fanatici dell’accessibilità” che diventano nei fatti fieri oppositori di Javascript. Più di una volta ho riscontrato una reazione ostile all’idea stessa di usare questo linguaggio, sebbene questo atteggiamento sia per fortuna diffuso tra poche frange di sviluppatori web.

Questi avversari di Javascript espongono spesso concetti validi a sostegno delle loro tesi, ma non sono ben informati sui recenti sviluppi teorici del linguaggio. È giunto il momento di riconoscere che per certi versi essi hanno assolutamente ragione, di proporre un cambiamento nelle modalità di scrittura del codice e di porre fine una volta per tutte all’assurdità secondo cui “Javascript è il male”.

Vedremo come si può separare l’azione (behavior) dalla struttura. Un fatto che dovrebbe convincere anche i più ostinati.

La scuola di pensiero anti-Javascript

Per iniziare un po’ di storia. Inizialmente, la rivoluzione dei CSS non è avanzata in accordo e armonia con Javascript. Per due motivi:

  1. Con i CSS non è possibile creare livelli dinamici e simili. Dal momento che molti pensavano che un sito, per essere un buon sito, doveva essere complesso, e poiché i livelli dinamici sono straordinariamente complicati, la vecchia scuola di scripting ha mantenuto intatta la sua popolarità.
  2. D’altra parte, la teoria non aveva fatto sufficienti progressi per tenere conto di Javascript. I pionieri erano impegnati a separare la presentazione dalla struttura e ad esplorare le nuove frontiere dei CSS. Incorporare Javascript in questo nuovo approccio non era una priorità.

La combinazione di questi fattori ha fatto sì che nulla cambiasse. Gli sviluppatori web hanno continuato ad usare certe librerie-spazzatura che facevano compiere nei livelli di una pagina web tutte le funzioni che si possono compiere nella finestra di un normale sistema operativo -ovviamente senza aprire una nuova finestra. Ché sarebbe stata una specie di truffa!

Poiché questi script erano incredibilmente complicati, e le interfacce che generavano chiaramente inutili, i pionieri dei CSS smisero quasi tutti di usare questo tipo di Javascript. Lo hanno fatto con modi informali, non dogmatici, e in quel particolare momento avevano ragione. Quel tipo di Javascript era ormai fuori controllo.

Quella che doveva essere un atteggiamento temporaneo ha portato alla nascita di una scuola di pensiero anti-Javascript, che poi si è differenziata in un’ala moderata e in una radicale.

Gli avversari di Javascript sembrano voler sollevare quattro problemi intorno a questo linguaggio -sebbene io non abbia mai trovato un articolo che riuscisse a sintetizzarli tutti in maniera chiara e coincisa:

  1. Usabilità. Ci sono alcuni effetti Javascript davvero irritanti. Finestre popup, messaggi sulla barra di stato, livelli dinamici e simili possono risultare estremamente fastidiosi. Questo, però, non è un argomento contro Javascript. Il modo migliore per affrontare i problemi sollevati d questo tipo di script è non usarli.
  2. Accessibilità. Alcuni utenti non hanno sui loro browser il supporto Javascript (o non lo hanno abilitato). Penso che per questo problema la soluzione sia vicina. Da una questione di ordine generale -perché dovrei rendere accessibile il mio sito?- siamo passati ad una di tipo tecnico: come dovrei rendere accessibile il mio sito?
  3. Codice scritto male. Anche gli script utili possono avere un codice scritto molto male. Ciò significa che l’azione e la struttura non sono separati come si dovrebbe (è proprio l’argomento di questo articolo).
  4. Sovrapposizione. Con i CSS si possono implementare in maniera più elegante alcune funzionalità tradizionalmente realizzate con Javascript, come effetti di rollover e menu a tendina. Trovo questa idea interessante e ne parlerò nel mio prossimo articolo.

In questo, vorrei presentare al lettore una breve visita guidata nella moderna teoria su Javascript e una serie di tecniche di codifica innovative. Spero di dimostrare che questi problemi relativi all’uso di Javascript in siti moderni, basati su XHTML e CSS, possono essere risolti, e che non c’è motivo per non usare questo splendido linguaggio.

Se vuoi aggiornamenti su Il nuovo Javascript: separare l'azione dalla struttura inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Il nuovo Javascript: separare l'azione dalla struttura

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy