Cos'è JavaScript?

JavaScript è un linguaggio di programmazione che gli sviluppatori utilizzano per realizzare pagine Web interattive. Le funzioni di JavaScript possono migliorare l'esperienza utente nel sito Web: dall'aggiornamento dei feed dei social media fino alla visualizzazione di animazioni e mappe interattive. Trattandosi di un linguaggio di scripting lato client, è una delle tecnologie principali del World Wide Web. Ad esempio, quando si naviga in Internet, ogni volta che ci si imbatte in un carosello di immagini, un menu a tendina click-to-show o un elemento che cambia dinamicamente colore su una pagina web, si tratta di effetti di JavaScript.

Per cosa viene utilizzato JavaScript?

In passato, le pagine Web erano statiche, simili alle pagine di un libro. Una pagina statica mostrava principalmente informazioni in un layout fisso e non funzionava come oggi ci aspettiamo da un sito Web moderno. JavaScript è nato come tecnologia lato browser per rendere più dinamiche le applicazioni Web. Utilizzando JavaScript, i browser potevano rispondere alle interazioni degli utenti e modificare il layout dei contenuti della pagina Web.

Con la maturazione del linguaggio, gli sviluppatori di JavaScript hanno creato librerie, framework e pratiche di programmazione e hanno iniziato a usarlo al di fuori dei browser Web. Oggi è possibile utilizzare JavaScript sia per lo sviluppo lato client che lato server. Nelle sottosezioni seguenti vengono illustrati alcuni casi d'uso comuni:

In passato, le pagine Web erano statiche, simili alle pagine di un libro. Una pagina statica mostrava principalmente informazioni in un layout fisso e non funzionava come oggi ci aspettiamo da un sito Web moderno. JavaScript è nato come tecnologia lato browser per rendere più dinamiche le applicazioni Web. Utilizzando JavaScript, i browser potevano rispondere alle interazioni degli utenti e modificare il layout dei contenuti della pagina Web.

Con la maturazione del linguaggio, gli sviluppatori di JavaScript hanno creato librerie, framework e pratiche di programmazione e hanno iniziato a usarlo al di fuori dei browser Web. Oggi è possibile utilizzare JavaScript sia per lo sviluppo lato client che lato server. Nelle sottosezioni seguenti vengono illustrati alcuni casi d'uso comuni:

 

Come funziona JavaScript?

Tutti i linguaggi di programmazione funzionano traducendo la sintassi inglese in codice macchina, che viene poi eseguito dal sistema operativo. JavaScript è generalmente classificato come un linguaggio di scripting o un linguaggio interpretato. Il codice JavaScript viene interpretato, ossia tradotto direttamente nel codice del linguaggio macchina sottostante da un motore JavaScript. Con altri linguaggi di programmazione, un compilatore compila l'intero codice in codice macchina in un passaggio separato. Pertanto, tutti i linguaggi di scripting sono linguaggi di programmazione, ma non tutti i linguaggi di programmazione sono linguaggi di scripting.

Motore JavaScript

Un motore JavaScript è un programma informatico che esegue codice JavaScript. I primi motori JavaScript erano semplici interpreti, ma tutti i motori moderni utilizzano la compilazione just-in-time o runtime per migliorare le prestazioni.

JavaScript lato client

Con "JavaScript lato client" ci si riferisce al modo in cui JavaScript funziona nel browser. In questo caso, il motore JavaScript si trova all'interno del codice del browser. Tutti i principali browser Web sono dotati di motori JavaScript integrati.

Gli sviluppatori di applicazioni Web scrivono codice JavaScript con diverse funzioni associate a vari eventi, come il clic o il passaggio del mouse. Queste funzioni apportano modifiche all'HTML e al CSS.

Ecco una panoramica di come funziona JavaScript lato client:

1.   Il browser carica una pagina Web quando la si visita.

2.   Durante il caricamento, il browser converte la pagina e tutti i suoi elementi, come pulsanti, etichette e caselle a discesa, in una struttura di dati chiamata Document Object Model (DOM).

3.   Il motore JavaScript del browser converte il codice JavaScript in bytecode. Questo codice è un intermediario tra la sintassi di JavaScript e la macchina.

4.   Eventi diversi, come il clic del mouse su un pulsante, attivano l'esecuzione del blocco di codice JavaScript associato. Il motore interpreta quindi il bytecode e apporta modifiche al DOM.

5.   Il browser mostra il nuovo DOM.

JavaScript lato server

Con "JavaScript lato server" ci si riferisce all'uso del linguaggio di codice nella logica del server di back-end. In questo caso, il motore JavaScript si trova direttamente sul server. Una funzione JavaScript lato server può accedere al database, eseguire diverse operazioni logiche e rispondere a vari eventi attivati dal sistema operativo del server. Il vantaggio principale dello scripting lato server è che è possibile personalizzare al massimo la risposta del sito Web in base alle proprie esigenze, ai propri diritti di accesso e alle informazioni richieste dal sito.

Lato client vs. lato server

La parola dynamic descrive JavaScript sia lato client che lato server. Il comportamento dinamico è la capacità di aggiornare la visualizzazione della pagina Web per generare nuovi contenuti secondo le necessità. La differenza tra JavaScript lato client e JavaScript lato server sta nella modalità di generazione di nuovi contenuti. Il codice lato server genera dinamicamente nuovi contenuti utilizzando la logica dell'applicazione e modificando i dati del database. JavaScript lato client, invece, genera dinamicamente nuovi contenuti all'interno del browser utilizzando la logica dell'interfaccia utente e modificando i contenuti della pagina Web già presenti sul client. Il significato è leggermente diverso nei due contesti, ma è correlato, ed entrambi gli approcci lavorano insieme per migliorare l'esperienza utente.

Oltre all'implementazione di funzioni dinamiche, un'altra differenza tra i due usi di JavaScript è nelle risorse a cui il codice può accedere. Sul lato client, il browser controlla l'ambiente di runtime di JavaScript. Il codice può accedere solo alle risorse consentite dal browser. Ad esempio, non può scrivere contenuti sul disco rigido se non si fa clic su un pulsante di download. D'altra parte, le funzioni lato server possono accedere a tutte le risorse della macchina server, se necessario.

Cosa sono le librerie JavaScript?

Le librerie JavaScript sono raccolte di frammenti di codice già scritti che gli sviluppatori Web possono riutilizzare per eseguire funzioni JavaScript standard. Il codice delle librerie JavaScript viene inserito nel resto del codice del progetto in base alle necessità. Se pensi al codice dell'applicazione JavaScript come a una casa, le librerie JavaScript sono come mobili già pronti che gli sviluppatori possono usare per migliorare la funzionalità della casa.

Di seguito sono riportati alcuni usi comuni delle librerie JavaScript:

Visualizzazione dati

La visualizzazione dei dati è fondamentale perché gli utenti possano visualizzare le statistiche, ad esempio nel pannello di amministrazione, nella dashboard e nei parametri delle prestazioni.

Librerie come Chart.js, ApexCharts e Algolia Places presentano funzioni integrate che possono essere utilizzate per creare applicazioni Web che visualizzano i dati in grafici e mappe.

Manipolazione del DOM

È possibile utilizzare librerie come jQuery e Umbrella JS per semplificare lo sviluppo Web, perché queste forniscono il codice per le funzioni standard dei siti Web, come le animazioni dei menu, le gallerie di immagini, i pulsanti, le lightbox e altro ancora.

Moduli

Tutti gli utilizzi per sviluppo Web si servono di moduli per consentire ai visitatori del sito di contattare qualcuno, ordinare prodotti e registrarsi agli eventi. Alcune librerie JavaScript, come wForms, LiveValidation, Validanguage e qForms, semplificano le funzioni dei moduli, tra cui la convalida, il layout, le condizioni e la trasformazione.

Funzioni matematiche e testuali

Molte applicazioni Web devono risolvere equazioni matematiche ed elaborare date, orari e testo. Invece di inviare tutte le richieste al server, è più efficiente gestirne alcune sul lato client. Gli sviluppatori Web utilizzano librerie JavaScript come Date.js, Sylvester e JavaScript URL Library.

Cosa sono i framework JavaScript?

Come le librerie JavaScript, i framework JavaScript sono una raccolta di frammenti di codice già scritti che svolgono diverse funzioni e possono essere riutilizzati. Tuttavia, mentre le librerie JavaScript sono uno strumento specializzato per l'uso su richiesta, i framework JavaScript sono un set di strumenti completo che aiuta a modellare e organizzare qualsiasi applicazione Web. Se si pensa al codice dell'applicazione JavaScript come a una casa, il framework JavaScript è lo schema usato per costruire la casa.

Ecco alcuni esempi di utilizzo dei framework JavaScript:

Sviluppo di applicazioni Web e per dispositivi mobili

AngularJS è un framework che semplifica lo sviluppo e i test di applicazioni Web, come applicazioni di e-commerce, applicazioni in tempo reale e applicazioni video. React Native è un altro framework che supporta lo sviluppo di applicazioni mobili con rendering nativo per iOS e Android.

Sviluppo Web reattivo

I siti Web reattivi offrono un'esperienza utente coerente su qualsiasi dispositivo. Ad esempio, gli schermi dei cellulari e dei tablet sono più piccoli di quelli dei computer desktop e portatili. Occorre che il sito Web visualizzi e presenti i dati in modo accurato anche su uno schermo più piccolo, senza, ad esempio, tagliare le estremità del sito Web. Grazie a framework come Bootstrap ed Ember.js, gli sviluppatori possono beneficiare del design reattivo e personalizzare facilmente l'aspetto di un sito Web su diverse piattaforme.

Sviluppo di applicazioni lato server

Node.js è un framework JavaScript open source lato server che esegue codice JavaScript al di fuori di un browser. Gli sviluppatori utilizzano questo framework per creare applicazioni lato server scalabili, veloci e affidabili basate sulla rete. È in grado di gestire richieste HTTP e flussi di dati, di supportare file system e di gestire più processi di backend contemporaneamente.

Cosa sono HTML e CSS?

L'Hypertext Markup Language (HTML) e i Cascading Style Sheets (CSS) sono altri due linguaggi di programmazione che gli sviluppatori utilizzano nello sviluppo front-end. L'HTML è l'elemento di base della maggior parte delle pagine Web. Tutti i paragrafi, le sezioni, le immagini, le intestazioni e il testo sono scritti in HTML. I contenuti appaiono sul sito Web nell'ordine in cui sono scritti nell'HTML.

CSS è un linguaggio di regole di stile utilizzato per applicare uno stile ai contenuti HTML. È possibile utilizzarlo per progettare elementi del sito Web quali i colori di sfondo, i caratteri, le colonne e i bordi.

HTML vs. CSS vs. JavaScript

Tutti e tre i linguaggi lavorano insieme per creare un'esperienza utente piacevole su qualsiasi sito. Sebbene HTML e CSS possano manipolare principalmente contenuti statici, possono integrarsi con il codice JavaScript lato client per aggiornarli anche dinamicamente.

Ad esempio, il blocco di codice script di una pagina HTML può contenere JavaScript al suo interno. Il browser può quindi elaborare sia il codice HTML che JavaScript interno al momento del caricamento della pagina HTML nel browser.
 

Quali sono i vantaggi di JavaScript?

Facilità di apprendimento e utilizzo

La sintassi di JavaScript è stata ispirata dal linguaggio di programmazione Java ed è di facile apprendimento e scrittura. Gli sviluppatori utilizzano JavaScript in quasi tutti i siti Web e le applicazioni per dispositivi mobili per lo scripting lato client. Nell'ultimo decennio Node.js ha acquisito una notevole popolarità anche per la scrittura di codice di back-end. Molte delle principali piattaforme di streaming e video sono state scritte in Node.js.

Indipendenza dalla piattaforma

A differenza di altri linguaggi di programmazione, è possibile inserire JavaScript in qualsiasi pagina Web e utilizzarlo con molti altri framework e linguaggi di sviluppo Web. Una volta scritto, è possibile eseguire il codice JavaScript su qualsiasi macchina. Pertanto, JavaScript rende lo sviluppo delle applicazioni indipendente dalla piattaforma.

Riduzione del carico del server

È possibile utilizzare JavaScript per ridurre il carico del server e la congestione della rete, perché può eseguire operazioni logiche e svolgere gran parte del lavoro del server sul client stesso. Si pensi, ad esempio, al processo di compilazione di un modulo di registrazione. JavaScript controlla rapidamente se è stato inserito un numero di 10 cifre nel campo del telefono cellulare. Se queste richieste fossero inviate al server, la pagina verrebbe ricaricata per ogni errore, rendendo il processo di registrazione molto lento e faticoso.

Miglioramento dell'interfaccia utente

JavaScript crea siti Web eleganti che consentono di trovare ed elaborare informazioni complesse. Gli sviluppatori applicano JavaScript per estendere la funzionalità e la leggibilità e per rendere più efficiente l'interazione con l'utente del sito Web.

Supporto della simultaneità

JavaScript può eseguire diverse serie di istruzioni in parallelo. Sul backend, Node.js è in grado di gestire ed elaborare le risposte del server su vasta scala senza consumare la stessa quantità di larghezza di banda.

Quali sono le limitazioni di JavaScript?

I linguaggi di programmazione utilizzano variabili come segnaposti per i valori reali dei dati. Ad esempio, in un blocco di codice lo sviluppatore può scrivere x=5 e y=x+1. Quando il codice viene eseguito, il computer sostituisce automaticamente x e y con 5 e 6, rispettivamente, per eseguirvi le funzioni. I dati possono essere di vario tipo, come stringhe di testo, numeri o date. Per questo motivo la maggior parte dei linguaggi di programmazione consente di definire il tipo di variabile. Una volta definito il tipo di variabile, questo non cambia; non è possibile memorizzare numeri in variabili a stringa.

Ad esempio, se si indica al programma che x e y sono numeri e poi si esegue l'operazione x+y, il computer si aspetterà due numeri e li sommerà. D'altra parte, se si definiscono x e y come stringhe, l'operatore + aggiunge le due stringhe per creare una parola più lunga.

Linguaggio scarsamente tipizzato

JavaScript è un linguaggio scarsamente tipizzato, il che significa che non consente al programmatore di definire il tipo di variabile. Una variabile può memorizzare qualsiasi tipo di dati in runtime e le operazioni presumono il tipo di variabile. Il risultato può anche essere assegnato a un altro tipo di dati: ad esempio, un'operazione potrebbe restituire il risultato come stringa "5" anziché come numero 5. Ciò può comportare errori di scrittura di codice accidentali e bug nel codice dovuti a errori di tipo.

Cos'è TypeScript?

TypeScript è un linguaggio di programmazione che migliora JavaScript aggiungendo i tipi alla sintassi. TypeScript aggiunge una sintassi aggiuntiva a JavaScript, in modo che gli strumenti di editor del codice possano individuare tempestivamente gli errori di scrittura di codice. Allo stesso tempo, il codice TypeScript si converte in JavaScript e offre tutti gli stessi vantaggi di JavaScript. Funziona anche in applicazioni e con framework e librerie JavaScript.

Cos'è AWS SDK per JavaScript?

AWS SDK per JavaScript è un set di librerie JavaScript open source e gratuite che si integrano con i servizi AWS. Supportano lo sviluppo di API, astrazioni di livello superiore e tre tipi di applicazioni:

  • JavaScript per browser
  • Node.js per server
  • React Native per lo sviluppo per dispositivi mobili

AWS SDK per JavaScript è completamente scritto in TypeScript e poi compilato in JavaScript. In questo modo si ottengono tutti i vantaggi di TypeScript senza doversi preoccupare della compatibilità con le versioni precedenti.

Puoi iniziare a usare AWS SDK per Java leggendo gli esempi di codice e la guida alla migrazione o installandolo direttamente da GitHub.

Cos'è AWS Amplify per JavaScript?

AWS Amplify è un set di strumenti e funzionalità dedicati che consente agli sviluppatori front-end per Web e dispositivi mobili di costruire rapidamente e facilmente applicazioni full-stack su AWS. Le librerie client open-source di Amplify forniscono interfacce incentrate su casi d'uso e di facile utilizzo per diverse categorie di operazioni basate sul cloud. Le librerie JavaScript di Amplify sono supportate per diversi framework Web e mobili, tra cui React, React Native, Angular, Ionic e Vue.js. Puoi iniziare completando la guida introduttiva per Amplify JavaScript.

Fasi successive di JavaScript con AWS