Vediamo cosa rende JavaScript così speciale, cosa è possibile ottenere tramite il suo utilizzo e tutte le tecnologie che possono essere applicate per renderlo adatto ad ogni necessità .
Cosâè JavaScript?
JavaScript è stato creato con lo scopo di âdare vita alle pagine webâ.
I programmi che sfruttano questo linguaggio vengono chiamati script. Possono essere scritti direttamente nel documento HTML ed eseguiti in automatico al caricamento della pagina.
Gli script vengono scritti ed eseguiti come testo semplice. Per questo non richiedono alcuna fase di preparazione o compilazione per essere eseguiti.
Sotto questo aspetto, JavaScript è molto differente da un altro linguaggio chiamato Java.
In origine JavaScript aveva un altro nome: âLiveScriptâ. In quel periodo Java era molto popolare, per questo si è pensato che identificare Javascript come il âfratello minoreâ di Java potesse aiutare alla sua diffusione.
Evolvendosi, JavaScript è diventato un linguaggio completamente indipendente, le cui specifiche sono definite da ECMAScript, e adesso non ha quasi nulla in comune con Java.
Attualmente, JavaScript può essere eseguito non solo nei browser, ma anche nei server web e in altri ambienti che supportano il motore JavaScript (JavaScript engine).
Il browser ha un suo motore JavaScript integrato, chiamato alle volte âJavaScript Virtual Machineâ.
Esistono altri motori JavaScript, tra cui:
- V8 â per Chrome e Opera.
- SpiderMonkey â per Firefox.
- â¦Ci sono altri codenames come âChakraâ per IE, âJavaScriptCoreâ, âNitroâ e âSquirrelFishâ per Safari, etc.
I nomi citati sopra possono essere utili da ricordare, poiché si possono trovare spesso in articoli che trattano di sviluppo web. Anche noi li useremo. Ad esempio, se âuna caratteristica X è supportata da V8â, probabilmente funzioneranno senza problemi in Chrome e Opera.
Il funzionamento di questi motori è complicato, ma i concetti alla base sono semplici.
- I motori (integrati nei browser) leggono (âanalizzanoâ) lo script.
- Successivamente convertono (âcompilanoâ) lo script nel linguaggio della macchina.
- Infine il âcodice macchinaâ viene eseguito, molto rapidamente.
Il motore ottimizza il codice ad ogni passaggio del processo, anche durante lâesecuzione dello script già compilato, quando ne analizza il flusso dati. Nonostante tutto lâesecuzione dello script risulta essere molto veloce.
Cosa può fare JavaScript a livello browser?
JavaScript, al giorno dâoggi, è un linguaggio di programmazione âsicuroâ. Non consente alcun accesso di basso livello alla memoria o alla CPU. Questo perché è stato creato con lo scopo di funzionare nei browser, che non richiedono questi tipi di privilegi.
Le capacità di JavaScript dipendono molto dallâambiente in cui lo si esegue. Ad esempio, Node.js supporta funzioni che consentono a JavaScript di scrivere/leggere file, eseguire richieste web, etc.
Integrato nel browser Javascript può fare qualsiasi cosa legata alla manipolazione della pagina, allâinterazione con lâutente e con il server.
Ad esempio, è possibile:
- Aggiungere HTML alla pagina, cambiare il contenuto esistente, modificare lo stile.
- Reagire alle azioni dellâutente, click del mouse, movimenti del cursore, input da tastiera.
- Inviare richieste al server tramite la rete, caricare e scaricare file (con lâausilio diAJAX e COMET).
- Prelevare e impostare cookies, interrogare lâutente, mostrare messaggi.
- Memorizzare i dati client-side (âmemorizzazione localeâ).
Cosa NON può fare JavaScript a livello browser?
Per la sicurezza dellâutente, le possibilità di JavaScript nel browser sono limitate. Lâintento è di prevenire che una pagina âmalignaâ tenti di accedere alle informazioni personali o di danneggiare i dati degli utenti.
Esempi di queste restrizioni possono essere:
-
JavaScript, in una pagina web, non può leggere o scrivere in qualsiasi file nellâhard disk, né copiare o eseguire programmi. Non ha accesso diretto alle funzioni del sistema operativo.
I moderni browser gli consentono di lavorare con i file, sempre con un accesso limitato e comunque solo se il comando proviene da utente, come il âdroppingâ di un file nella finestra del browser, o con la selezione tramite il tag
<input>.Ci sono anche funzionalità che consentono di interagire con la camera/microfono e altri dispositivi, ma in ogni caso richiedono il permesso esplicito dellâutente. Quindi una pagina con JavaScript abilitato non può attivare la web-cam di nascosto, osservare i nostri comportamenti e inviare informazioni alla CIA.
-
Pagine o schede diverse generalmente non sono a conoscenza dellâesistenza delle altre. In certi casi, tuttavia, può capitare; ad esempio quando una finestra ne apre unâaltra tramite JavaScript. Ma anche in questo caso, il codice JavaScript non può accedere allâaltra pagina se non appartiene allo stesso sito (stesso dominio, protocollo o porta).
Questa viene definita la âSame Origin Policyâ (âPolitica di Appartenenza alla Stessa Origineâ). Per poter aggirare questo limite, entrambe le pagine devono contenere uno speciale codice JavaScript che consente di gestire lo scambio di dati.
Questa limitazione è sempre dovuta alla sicurezza dellâutente. Una pagina proveniente da
http://anysite.comche è stata aperta da un utente, ad esempio, non deve essere in grado di accedere ad unâaltra scheda del browser con lâURLhttp://gmail.come rubarne le informazioni. -
JavaScript può facilmente comunicare con il server da cui la pagina proviene. Ma la sua abilità di ricevere dati da altri siti/domini è limitata. Sebbene sia possibile, sono richieste esplicite autorizzazioni (passate tramite HTTP headers) dallâindirizzo remoto. Ancora una volta, una limitazione dovuta alla sicurezza.
Queste limitazioni non si pongono se JavaScript viene eseguito fuori dal browser, ad esempio in un server. I browser moderni permettono lâinstallazione di plugin ed estensioni che consentono di estendere vari permessi.
Cosa rende JavaScript unico?
Ci sono almeno tre cose che rendono JavaScript cosi unico:
- Completa integrazione con HTML/CSS.
- Operazioni semplici vengono eseguite semplicemente.
- Supportato dai maggiori browser ed integrato di default.
JavaScript è lâunica tecnologia in ambiente browser che combina queste tre caratteristiche.
Questo rende JavaScript unico. Ed è il motivo per cui è lo strumento più diffuso per creare interfacce web.
Quando si ha in programma di imparare una nuova tecnologia, è fondamentale verificare le sue prospettive. Quindi diamo uno sguardo alle nuove tendenze che includono nuovi linguaggi e tecnologie.
Linguaggi âoltreâ JavaScript
La sintassi di JavaScript non soddisfa le necessità di tutti. Alcune persone necessitano di caratteristiche differenti.
Questo è prevedibile, poiché i progetti e i requisiti sono diversi da persona a persona.
Recentemente, per questo motivo, sono nati molti nuovi linguaggi che vengono convertiti in JavaScript prima di essere eseguiti nel browser.
Gli strumenti moderni rendono la conversione molto veloce e pulita, consentendo agli sviluppatori di programmare in un altro linguaggio e di auto-convertirlo under the hood.
Esempi di alcuni linguaggi:
- CoffeeScript è un linguaggio che introduce una sintassi semplificata che consente di scrivere codice più leggibile. Amato dagli sviluppatori provenienti da Ruby.
- TypeScript si occupa di aggiungere la âtipizzazioneâ, per semplificare lo sviluppo e supportare sistemi più complessi. Eâ stato sviluppato da Microsoft.
- Flow ancheâesso aggiunge la tipizzazione dei dati, ma in un modo differente. Sviluppato da Facebook.
- Dart è un linguaggio autonomo che possiede il suo motore, che esegue in ambienti esterni al browser (come mobile apps). Eâ stato introdotto da Google come alternativa a JavaScript, ma attualmente i browser richiedono la conversione in JavaScript, proprio come i precedenti.
- Brython è un transpiler, scritto in Python, che consente di scrivere applicazioni in questâultimo senza utilizzare JavaScript.
- Kotlin è un moderno, conciso e sicuro linguaggio di programmazione mirato ai browsers o a Node.
Ce ne sono molti altri. Ovviamente, per comprendere cosa stiamo facendo, se utilizziamo uno di questi linguaggi dovremmo altresì conoscere JavaScript.
Riepilogo
- JavaScript è stato creato specificamente per i browser, ma attualmente viene utilizzato con efficacia in molti altri ambienti.
- Attualmente, per quanto riguarda lo sviluppo del web, JavaScript si trova in una posizione unica grazie ad una completa integrazione con HTML/CSS.
- Ci sono molti linguaggi che possono essere âconvertitiâ in JavaScript; essi provvedono le stesse funzionalità e risolvono gli stessi problemi. Eâ fortemente consigliato di leggere brevemente le funzionalità di alcuni di essi, dopo avert studiato e compreso JavaScript.
Commenti
<code>, per molte righe â includile nel tag<pre>, per più di 10 righe â utilizza una sandbox (plnkr, jsbin, codepenâ¦)