PROGRAMMIAMO
JS - I Framework e jQuery
Javascript: i problemi di una crescita troppo impetuosa

Javascript, nato come semplice linguaggio di scripting per aggiungere effetti dinamici a una pagina html, si è negli anni evoluto fino a diventare un vero e proprio linguaggio di programmazione, molto potente, complesso e ricco di funzionalità. Questa sua "ricchezza", spesso frutto di successivi "miglioramenti" e aggiunte (piuttosto che di un piano sistematico e organico di sviluppo del linguaggio stesso) costituiscono però anche un formidabile ostacolo e una grande difficoltà, specie per lo sviluppatore alle prime armi. Di fatto la complessità del linguaggio rispecchia la complessità delle applicazioni di JS: oggigiorno le pagine realizzate in questo linguaggio offrono all'utente un'esperienza di utilizzo ormai alla pari con quella di una vera e propria applicazione dedicata (come per esempio un normale programma in esecuzione sul PC).

Come se non bastasse, le potenzialità (e la complessità) del linguaggio vengono ulteriormente accresciute dall'interazione con i fogli stile CSS, a loro volta evolutisi nel corso degli anni fino a incorporare essi stessi un proprio "linguaggio di scripting", in grado di produrre nelle pagine effetti dinamici, animazioni, etc. (fogli stile CSS3).

Un ulteriore fattore di complicazione è infine la grande diversità dei dispositivi hardware e delle piattaforme software (i browser) su cui il linguaggio JS viene eseguito. Tale diversità impone allo sviluppatore uno studio attento di tutti i possibili problemi di compatibilità, con il risultato che il codice prodotto diventa spesso molto intricato e difficile da mantenere (bisogna infatti prevedere tutti i casi possibili e fornire alternative di codice che funzionino su tutti i browser, compresi quelli più datati ma ancora in circolazione - cioè effettuare quella che viene chiamata codifica cross-browser).

Cos'è un framework

Per cercare di affrontare, semplificare e risolvere tutti i numerosi problemi di mantenimento e sviluppo del codice e di compatibilità cross-browser, sono stati sviluppati, a partire dagli anni 2000, numerosi framework.

Col termine framework (termine della lingua inglese che può essere tradotto come intelaiatura o struttura) in informatica si intende un'architettura logica di supporto, su cui un software può essere progettato e realizzato. Lo scopo è quello di facilitare lo sviluppo di nuovi programmi da parte del programmatore. In pratica un framework si presenta, attraverso l'uso massiccio della definizione di nuovi prototipi e oggetti, come una estensione, semplificazione e adattamento delle regole di scrittura di un particolare linguaggio.

Facciamo subito un esempio, per evitare che questo discorso rimanga troppo astratto e fumoso. Sappiamo da tempo che in JS esiste un metodo document.getElementById che permette di accedere agli attributi di un oggetto, per esempio:

 document.getElementById('omino').src='../immagini/omino2.jpg'

Usando il framework jQuery, che andremo a studiare in maggiore dettaglio nelle prossime lezioni, la stessa "istruzione" può essere scritta come:

$("#omino").attr("src","../immagini/omino2.jpg")

Come si può notare, il framework arricchisce in un certo senso il linguaggio di nuove "istruzioni". In JS infatti non esiste l'operatore $ usato come nell'esempio qui sopra, né tanto meno esiste un metodo attr.

In realtà non si tratta di nuove istruzioni, ma di nuovi oggetti, proprietà e metodi definiti usando la sintassi base del JS. Tuttavia il programmatore può tranquillamente far finta, quando utilizza un particolare framework, di avere a disposizione nuove istruzioni e che la sintassi del linguaggio di partenza sia stata arricchita (il framework estende infatti la sintassi originaria, non abolisce le vecchie istruzioni e metodi, che possono comunque essere sempre utilizzati).

jQuery

Il concetto di framework non è specifico di JS, ma esistono framework scritti appositamente per molti linguaggi di programmazione, dal C, al PHP, al Phython etc.

Nel corso degli anni sono stati sviluppati numerosi framework per semplificare la scrittura di programmi in JS. Fra i principali ricordiamo qui Angular, React, Ember, Aurelia, Meteor, Backbone e molti altri dai nomi esotici e misteriosi. Ognuno di essi offre vantaggi e svantaggi rispetto agli altri, è conveniente per una particolare categoria di programmi o per una particolare tipologia di programmatori. Alcuni dei framework sono opensource, altri semplicemente freeware e altri ancora vengono distribuiti commercialmente.

Qui nel seguito vogliamo presentare rapidamente uno dei framework più usati e diffusi, forse quello più popolare anche se non necessariamente il più performante o potente: jQuery. Pubblicato per la prima volta nel gennaio 2006 da John Resig, è un progetto tuttora attivo e in evoluzione, gestito da un gruppo di sviluppatori guidato da Dave Methvin. Attualmente, anche Microsoft e Nokia forniscono di serie jQuery sulle proprie piattaforme.

jQuery fornisce metodi e funzioni per gestire al meglio aspetti grafici e strutturali come posizione di elementi, animazioni, manipolazione del DOM e altro ancora, mantenendo la compatibilità tra browser diversi e standardizzando gli oggetti messi a disposizione dall'interprete JavaScript del browser.

Inoltre è possibile espandere ulteriormente l'ambito di applicazione di jQuery usando i cosiddetti plugin, cioè delle estensioni di jQuery che possono essere scaricate dal jQuery plugin repository e che aumentano ulteriormente le potenzialità del framework. Per esempio nel repository si trovano plugin per animare i colori di un oggetto, per modificare il modo in cui vengono realizzate le animazioni (easing), per creare complesse finestre di dialogo, per gestire calendari e letteralmente per centinaia di altre possibili applicazioni.

Il modo in cui jQuery ha rivoluzionato lo sviluppo web grazie alla sua semplicità di utilizzo ha portato alla creazione del seguente modo di dire: “Io non sviluppo scrivendo JavaScript, sviluppo scrivendo jQuery”.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it