87050 Letture

Linguaggi di scripting lato client: alla scoperta di JavaScript - Prima puntata

I linguaggi di programmazione si dividono essenzialmente in tre grandi gruppi: linguaggi compilati, semi-compilati ed interpretati.
Nel caso dei linguaggi compilati, il codice sorgente (ossia il file testuale contenente le istruzioni che devono essere eseguite da parte del personal computer) viene "impacchettato" sotto forma di un file eseguibile. I sorgenti vengono "tradotti" in codice macchina, comprensibile al personal computer, mediante l'utilizzo dei cosiddetti compilatori. Ciò comporta che un programma "trasformato" in codice macchina può funzionare solo ed esclusivamente in un particolare ambiente hardware-software.
Tra i linguaggi semi-compilati, citiamo Java: nato per affiancare l'HTML, permette lo sviluppo e l'utilizzo di applicazioni indipendenti dalla piattaforma. Ciò significa che Java è indipendente dalla specifica piattaforma hardware-software: il programma Java viene compilato in Java Bytecode quindi interpretato ed eseguito dalla speciale Java Virtual Machine (ne esistono versioni per tutte le piattaforme hardware-software in circolazione...).
La terza categoria di linguaggi di programmazione è composta dai linguaggi interpretati: in questo caso, il codice sorgente viene proposto in chiaro, senza alcun tipo di codifica: sta al browser Internet interpretarlo ed eseguire le istruzioni elencate.
I linguaggi interpretati possono quindi essere considerati come una sorta di "estensione" dell'HTML che non è un linguaggio di programmazione vero e proprio (nonostante sia spesso, in maniera colloquiale, erroneamente definito come tale...). L'HTML è soltanto una sorta di "impaginatore" che permette di impostare la posizione di testo ed immagini in una pagina web, di inserire tabelle, frame, liste puntate e numerate e così via, oltre a stabilire le proprietà caratteristiche (ampiezza, colore, allineamento,...) di ciascun elemento. Fatta eccezione per i form, l'HTML non ha in sé né strutture in grado di interagire con l'utente né strutture decisionali. L'HTML, insomma, è completamente statico.

Prima di passare alla presentazione dei linguaggi dinamici, desideriamo porre l'accento su JavaScript, considerabile come il complemento di HTML. JavaScript è un linguaggio interpretato ed è un linguaggio di scripting. JavaScript è semplice perché si basa su un numero ristretto di oggetti di programmazione, tuttavia il suo utilizzo potrebbe non risultare indicato per lo svolgimento delle operazioni più complesse: procedure all'apparenza assai semplici, potrebbero infatti implicare lo sviluppo di script piuttosto complicati.
JavaScript è sicuro e affidabile: proprio per la sua peculiarità di essere un linguaggio piuttosto limitato - per numero e complessità delle strutture che mette a disposizione - non si conoscono problemi di sicurezza e di affidabilità. Tutti i bug e le "falle" di sicurezza di JavaScript sono stati scoperti e risolti sin dall'uscita delle prime versioni.
Tra le caratteristiche principali di JavaScript abbiamo già messo in luce come il codice sia in chiaro, ossia visibile da parte di chiunque, semplicemente servendosi della funzione Visualizza, HTML del browser, decida di consultare il codice HTML della pagina web che sta visitando.
Il codice JavaScript, inoltre, viene processato ed eseguito sul client, ossia sul personal computer che sta visitando un determinato sito Internet. Si tratta di un aspetto importante che deve essere tenuto a mente: altri linguaggi di programmazione vengono detti lato server perché, ad ogni richiesta di connessione da parte di un personal computer (client), il server esegue le azioni previste dal programmatore e comunica al computer client (e quindi al suo browser Internet) il responso.
Il codice JavaScript, invece, non viene interpretato ed eseguito sul server ma viene inviato "così com'è" al client: penserà, quindi, il browser Internet (per esempio Internet Explorer) ad interpretarlo e ad eseguire le istruzioni specificate. Il codice di uno script JavaScript deve essere quindi scaricato completamente da parte del browser installato sul personal computer client, prima di poter essere eseguito. In questo modo, JavaScript dispensa il server dall'effettuare una mole di lavoro aggiuntiva (il server non deve processare il codice JavaScript) ma costringe ogni client ad un'opera di interpretazione ed esecuzione degli script. E' bene, quindi, non realizzare in JavaScript, script troppo complessi, che richiedano, da parte dei client, elevati tempi di elaborazione.

L'identikit di JavaScript
- JavaScript è un linguaggio di scripting
- Un linguaggio di scripting è un linguaggio di programmazione "ridotto all'osso"
- Uno script JavaScript si compone di una serie di istruzioni eseguibili dal personal computer client
- Il codice JavaScript è inseribile all'interno di una qualsiasi pagina HTML
- JavaScript è un linguaggio aperto che può essere liberamente utilizzato da chiunque senza la necessità di acquistare una licenza d'uso
- JavaScript è supportato da tutti i browser Internet


La programmazione orientata agli oggetti
Si sente sempre più spesso parlare di programmazione orientata agli oggetti (in inglese OOP, Object Oriented Programming). Pochi ne conoscono, però, il reale significato. Per far luce sull'argomento è sufficiente pensare un programma come un insieme di oggetti (oggetti software) che cooperano tra loro. Ogni oggetto è in grado di eseguire delle azioni particolari che vengono effettuate solo quando richiesto. L'esecuzione di un'azione è richiesta sempre da un altro oggetto software. Pensate ad un televisore: si tratta di uno strumento che, per esempio, sa accendersi, sa sintonizzarsi su canali specifici, sa spegnersi. Ogni azione è però richiesta esplicitamente da parte dell'utente, servendosi di un altro oggetto (il telecomando).
In pratica, è il telecomando che invia al televisore un messaggio comunicandogli quale azione deve essere intrapresa. Il televisore poi è in grado di conoscere il suo stato attuale ossia le proprie proprietà (il televisore è acceso o spento? Su quale canale è sintonizzato?). Analogamente, anche gli oggetti software dialogano tra loro per mezzo di messaggi ed ogni oggetto è caratterizzato da un insieme di proprietà che ne descrivono lo stato.
I linguaggi di programmazione più moderni fanno uso degli oggetti software per rendere la scrittura dei programmi più semplice e più intuitiva. Non è richiesta, infatti, al programmatore la conoscenza sul funzionamento "interno" dell'oggetto software (chi utilizza il televisore non deve sapere come sono strutturati i circuiti elettronici che gli permettono di funzionare...): gli è sufficiente apprendere le modalità per colloquiare con lui, ossia i messaggi che possono essere inviati e l'effetto di ogni singolo messaggio (semantica).
Semplificando molto, provate a pensare ad un ipotetico oggetto software chiamato "calcola distanze": tale oggetto è in grado di acquisire il nome di due città e di calcolare la distanza tra di esse. Possiamo supporre che tale oggetto software preveda l'invio di due messaggi: il primo per richiedere l'acquisizione dei nomi delle città da parte dell'utilizzatore del programma, il secondo per richiedere il calcolo della distanza tra le due città specificate. Le proprietà dell'oggetto saranno essenzialmente due: la prima permetterà di avere informazioni sul nome della prima città inserita; la seconda proprietà sul nome della seconda città. I valori di ogni proprietà sono memorizzati in appositi contenitori (porzioni della memoria) denominati variabili. Ciascun oggetto software è poi caratterizzato da alcuni metodi: essi descrivono le azioni che l'oggetto deve compiere non appena riceve un messaggio specifico.
La programmazione orientata agli oggetti è, quindi, una tecnica di programmazione che permette di semplificare notevolmente alcuni concetti che riguardano lo sviluppo di programmi. Un esempio di linguaggio di programmazione orientato agli oggetti è Java (che non ha nulla a che fare con il JavaScript). Per maggiori informazioni in merito, potete far riferimento al nostro corso Java.


Linguaggi di scripting lato client: alla scoperta di JavaScript - Prima puntata - IlSoftware.it