JavaScript

23 Jul 2019 | M.A.D.R.

É una di quelle tante idee nate nell’arco di pochi giorni che sembrano semplicemente destinate a rappresentare un passatempo per chi le crea.

Invece JavaScript si è dimostrato ben presto un linguaggio di programmazione efficace, semplice e divertente che nel tempo di un decennio ha conquistato il mondo.


L’ha inventato un certo Brendan Eich, un informatico statunitense allora poco più che trentenne che lavorava alla Netscape Communications.

Tutto questo per dire che JavaScript è nato per Internet e ha cavalcato gli anni della New Economy che hanno visto un trionfo dell’uso della Rete.

Questo linguaggio è però diventato uno degli strumenti più adattabili al mondo essendo ormai presente in ogni ambito dell’Informatica: web, desktop, mobile, iot e server.

Caratteristiche di JavaScript

JavaScript è un linguaggio che si può imparare senza troppa difficoltà. Ciò non significa che sia semplice o povero di elementi, diciamo piuttosto che offre un’interfaccia amichevole per chi lo studia.

Chiariamo subito che spesso sentirai parlare non solo di JavaScript, ma anche di ECMAScript. Sappi che in buona parte possono essere considerati la stessa cosa, con un po’ di approssimazione.

In pratica, JavaScript è stato standardizzato a fine anni ’90 da ECMA (European Computer Manufacturers Association) e da lì deriva il nome della sua versione “standardizzata”, ECMAScript appunto.

JavaScript permette di svolgere qualsiasi operazione lavorando su stringhe, numeri, date e strutture dati.

Inoltre è basato sugli oggetti pertanto permette di strutturare informazioni complesse facendo leva su tipi di dato più semplici.

Sin dalla strutturazione di un oggetto JavaScript, si nota come questo linguaggio punti ad una estrema essenzialità.

Vediamo un paio di esempi (non preoccuparti se ancora non comprendi il significato dei concetti presentati, gli esempi servono solo a mostrarti la semplicità di questo linguaggio).

Se volessimo creare un oggetto “persona” con quattro proprietà (nome, cognome, eta e citta) non dovremmo far altro che scrivere:

persona={
  nome: 'Claudio',
  cognome: 'Rossi',
  eta: 45,
  citta: 'Torino'
}

Utilizzando invece le parentesi quadre si creano array, la struttura dati di base che permette di creare reti di informazioni anche di una certa complessità.

Gli array possono anche avere come elementi degli oggetti creando una forma di annidamento ideale per molte applicazioni.

Questo potrebbe essere un array che rappresenta un gruppo di persone con la stessa struttura del precedente:

gruppo_persone= [
{ nome: 'Claudio', cognome: 'Rossi', eta: 27, citta: 'Torino'},
{ nome: ‘Luigi’, cognome: 'Neri', eta: 38, citta: 'Roma'},
{ nome: 'Simona', cognome: 'Verdi', eta: 21, citta: 'Bari'},
{ nome: 'Noemi', cognome: 'Rossi', eta: 24, citta: 'Roma'}
]

La semplicità di array e oggetti è stata scelta inoltre per dare vita a , un formato testuale usatissimo al giorno d’oggi per far interagire servizi web e applicazioni.

Con il tempo JavaScript si è arricchito di funzionalità che l’hanno reso più moderno e allineato con gli attuali standard di programmazione.

Ad esempio, nella versione di ECMAScript pubblicata nel 2015 è stato introdotto il costrutto delle classi che permettono la Programmazione Orientata agli Oggetti.

JavaScript ed il web

Il destino di JavaScript è inesorabilmente legato al web. Nasce lì infatti e quello è il suo habitat naturale.

Il codice scritto in questo linguaggio viene scaricato dal server al browser insieme a HTML e fogli di stile CSS e lì permette alla pagina web di prendere vita.

Tutto ciò che normalmente vediamo fare di dinamico nel browser è dovuto in un modo o nell’altro proprio a JavaScript. In primis, gestisce la struttura di oggetti della pagina, il DOM (Document Object Model).

Le funzioni originali demandate a questo compito sono facili da usare ma costringono a scrivere del codice piuttosto ripetitivo. Grande slancio lo si ha avuto con due importanti innovazioni:

  • Ajax (Asynchronous JavaScript And XML) che ha messo in condizione la pagina web di scaricare dati dal server senza la necessità di essere ricaricata.
  • jQuery, un framework che ha di gran lunga semplificato l’uso di JavaScript offrendo, da un lato, delle funzioni e degli oggetti più comode per l’utente, dall’altro, un supporto immediato all’uso di Ajax.

L’interazione via browser è diventata così comoda per l’utente che piuttosto che creare applicazioni desktop in senso classico le aziende hanno iniziato a preferire pagine web – le cosiddette web app.

Inoltre grazie alle chiamate Ajax, tali pagine non avevano bisogno di essere ricaricate spesso ma era sufficiente aprirle una volta e queste continuavano ad interagire con l’utente, da un lato, e a dialogare dietro le quinte con il server dall’altro.

Tale modello è diventato così comune che ha preso un nome tutto suo, Single Page Application (SPA).

Alcuni framework realizzati in JavaScript si sono dimostrati ottimi per dare un’architettura alle web app e tra i molti possiamo citare Angular.js, strumento imponente nato in casa Google, e Vue.js, molto efficace ma estremamente più snello di Angular o ancora React, con alcune lib Underscore e Backbone.

JavaScript fuori dal browser

JavaScript per anni ha vissuto chiuso in un browser.

Poteva quindi servire a tutto purché nel contesto di una pagina web.
Una delle più grandi svolte dell’Informatica si è avuta con la nascita di Node.js, nel 2009.

Finalmente JavaScript è uscito dal browser e si è trasformato in un linguaggio di programmazione con cui realizzare qualsiasi tipo di programma.

Inoltre Node.js si è da subito dimostrato estremamente efficiente basando tutto il suo lavoro sulla reazione ad eventi in modo da attivare il codice solo al momento necessario.

Uno dei suoi impieghi principali è stato quello di “server” per offrire applicazioni web e web service.

Su Node.js sono stati basati molti altri progetti tra cui Electron.

Questo è un framework sviluppato da GitHub che permette di realizzare applicazioni desktop multipiattaforma in modo estremamente semplice e veloce, sfruttando le competenze web.

JavaScript e il mobile

Altro settore in cui JavaScript ha spopolato è il mobile.

Da quando questo è diventato una delle miniere d’oro dell’Informatica molte aziende hanno iniziato a formare dipendenti e assumerne di nuovi in grado di calcare i principali sistemi operativi ovvero iOS e Android.

Il problema è che le app sviluppate nativamente dovevano essere create da zero per ogni sistema, necessariamente duplicando i gruppi di lavoro.

Infatti da un lato si doveva lavorare su sistemi Apple con i linguaggi Objective-C e Swift, dall’altro si richiedeva la conoscenza di Java e recentemente Kotlin.

Sono nate per questo molte alternative per sviluppare app multipiattaforma con JavaScript, HTML e CSS dove professionisti già avvezzi al web potevano usare le proprie competenze per il mobile.

Tra le varie soluzioni possiamo citare (il porting open source di PhoneGap), Ionic basato su Angular e NativeScript.

Soluzioni complete per ogni esigenza