Javascript

Da non confondere con Java, Javascript è uno dei linguaggi più prossimi alle persone comuni, nel senso che anche chi non è uno sviluppatore si trova ad averci a che fare: basta solo navigare sul web con un browser come Chrome o Firefox o Edge per utilizzare Javascript.

La caratteristica di Javascript (spesso abbreviato JS) è che il suo ambiente tipico di esecuzione è un browser. JS è un linguaggio interpretato, e l'interprete sta dentro il browser.

Il processo è questo: il browser richiede ad un server una pagina (che è scritta in HTML); ma insieme alla pagina riceve anche del codice Javascript, che viene eseguito in quel momento, nel browser e nel computer di chi sta navigando.

Buona parte dell'interazione veloce e degli effetti dinamici dei siti web di oggi è realizzata con codice Javascript. Ma siccome viene realizzata dal lato dell'utente (si dice che è un codice eseguito lato client) ci sono dei rischi: potrebbe, ad esempio, eseguire istruzioni che vanno a leggere e scrivere nel disco dell'computer su cui giro. Di qui una continua escalation di aggiornamenti del linguaggio, dei browser e delle tecniche di invasione.

La storia di JS è anche la dimostrazione di quanto le questioni relative ai linguaggi non siano puramente teoriche o tecniche.

Javascript è stato creato nel 1995 da Brendan Eich per la Netscape Communication, l'azienda che ha prodotto il primo browser commerciale al mondo, appunto Netscape.

Dopo alcuni anni in cui Netscape era praticamente l'unico browser in circolazione, alla fine del millennio il browser Internet Explorer di Microsoft era diventato lo standard de facto. Questo browser era in grado di eseguire un versione leggermente diversa di Javascript (chiamata Jscript per evitare questioni legali). In pratica succedeva che alcuni siti si vedevano bene con un browser ma non con l'altro, e viceversa. In quella che fu chiamata la prima guerra dei browser non fu tanto la superiorità tecnica a decretare la vittoria di IExplorer su Netscape, ma il fatto che Microsoft includeva gratuitamente IExplorer in ogni versione del suo sistema operativo, rendendo l'acquisto di Netscape immotivato.

Netscape Communication tentò di resistere accusando Microdoft di concorrenza sleale, ma alla fine scomparve; dalle sue ceneri nacque la fondazione Mozilla e il browser Firefox. Nel frattempo, battaglia dopo battaglia, e con l'ingresso sul mercato di Google Chrome, si arrivò nel 2008 ad una versione di Javascript standard (ECMAscript 5), riconosciuta da tutti i browser.

Due caratteristiche di JS lo rendono ideale per l'uso nel web: la possibilità di scrivere dei metodi che reagiscono ad eventi generati dall'utente (click del mouse, pressione di un tasto sulla tastiera) o da altre parti del programma e la possibilità di modificare direttamente la struttura della pagina HTML dopo che è stata caricata e visualizzata dal browser. Il codice seguente è un esempio: viene creato un "gestore di eventi" che quando si accorge di un click su un bottone modifica la pagina HTML andando a scrivere dentro ad un suo elemento:

Esempio di codice JS
Source: web

Inizialmente JS era un linguaggio piuttosto semplice, diretto, pensato solo per manipolare le pagine HTML. Un po' alla volta è diventato un linguaggio più generale, tanto che oggi esistono ambienti di sviluppo come Node.js, che sono basati su un interprete Javascript (V8, lo stesso usato in Google Chrome) e permettono di costruire applicazioni generiche. Si basano su Javascript anche gestori di database (come MongoDB), programmi di posta elettronica (come Mozilla Thunderbird).

Per la sua generalità, Javascript viene usato anche per creare app che possono essere installate sugli smartphone e che sono indipendenti dal sistema operativo del telefono, cioè possono girare su Android o su IOS o su altro ancora.

Prossimo pannello:  Python



Versione: 12/01/2022 - 19:23:41

Parole: 302

Pannelli

Linguaggi                   
Linguaggi di programmazione 
Nomi dei linguaggi          
Caratteri e linguaggi       
Famiglie                    
Traduzione                  
COBOL                       
Lisp                        
APL                         
Perl                        
Javascript                  
Python                      
PHP                         
Ruby                        
Linguaggi educativi         
Pascal                      
Ada                         
Logo                        
Prolog                      
IEML                        
Linguaggi nazionali         
Linotte                     
Linguaggi esoterici         
Intercal                    
Brainfuck                   
Emmental                    
HQ9+                        
🔎