PROGRAMMIAMO
JS - Nozioni generali

Un po' di storia

L'HTML non è un vero linguaggio di programmazione, in quanto non è in grado di elaborare dati né di eseguire vere e proprie istruzioni (non contiene selezioni, cicli, variabili eccetera). Le pagine scritte in HTML puro vengono dette statiche dal momento che il loro contenuto non cambia e vengono visualizzate sempre allo stesso modo sul browser dell'utente.

Con la crescita esponenziale di Internet e l'aumento delle pagine in rete, già nei primi anni novanta si avvertì la necessità di potenziare il linguaggio HTML per realizzare pagine dinamiche, cioè in grado di modificarsi, interagendo con l'utente (DHTML=Dynamic HTML).

A tale scopo Netscape introdusse nel 1995 sulla versione 2.0 del proprio browser un linguaggio di programmazione denominato inizialmente LiveScript e quindi JavaScript (nel seguito JS per brevità). Il nome fa pensare che JavaScript sia in qualche modo parente o addirittura uguale al linguaggio Java. Non è vero! Entrambi i linguaggi sono derivati in qualche modo dal linguaggio C, ma si tratta di due cose diverse: Java è un altro linguaggio di programmazione sviluppato da Sun Microsystems in grado di sviluppare programmi eseguibili da una pagina web (cd "applet"). Decisamente, in questo caso, la scelta dei nomi non è stata particolarmente azzeccata!


Iniziare a programmare in JavaScript: lo scopo del nostro corso

Alcuni fra gli scopi più comuni del JS sono realizzare pagine con menu dinamici (es. menu a tendina), implementare form in grado di verificare i dati inseriti dall'utente o realizzare vari tipi di pagine web dinamiche. Inoltre il JS consente di gestire i cookies, cioè brevi file di testo utilizzati per memorizzare dati di sessione dell'utente.

Di solito chi programma in JS ha già precedenti esperienze con altri linguaggi di programmazione oppure al contrario si limita a copiare e incollare nelle proprie pagine codice creato da altri sviluppatori, aggiungendo poche modifiche e personalizzazioni. Assai raramente il JS viene utilizzato come linguaggio didattico per imparare a programmare (da zero o quasi...). Eppure il JS ha diversi vantaggi rispetto ad altri linguaggi di programmazione più "blasonati" (come il C per esempio), che lo rendono particolarmente attraente per chi si avvicina la prima volta al mondo della programmazione.

Uno dei vantaggi principali di JS  è che per scrivere ed eseguire programmi occorrono pochissimi strumenti, in genere gratuiti e disponibili per tutti e su qualsiasi sistema operativo. La dotazione minima è data semplicemente da:

  1. un editor di testi (come il Blocco Note di Windows)
  2. un browser (Chrome, Firefox, Internet Explorer, Opera, Safari...)

In pratica si tratta della stessa dotazione minima necessaria per scrivere pagine in HTML. Come le pagine html, anche i programmi JS possono essere eseguiti su qualsiasi computer (o smartphone) con qualsiasi sistema operativo (a condizione che abbia un browser che supporti JS, come ormai accade con tutti i browser moderni).

Inoltre, rispetto al C classico, presenta anche il vantaggio di appoggiarsi all'HTML per la realizzazione dell'interfaccia utente del programma, cioè della parte del programma che comunica con l'utente. Rispetto alle schermate nere stile DOS del C questo è un piacevole vantaggio per il programmatore, perché consente con poca fatica di realizzare interfacce gradevoli e attraenti.

Naturalmente ci sono anche degli svantaggi. Uno dei principali è il fatto che il JS (almeno nella sua versione classica, che andremo qui a studiare) non consente di realizzare programmi autonomi (eseguibili "standalone"), cioè che possano essere eseguiti con un doppio click, come i normali programmi di Windows. Al contrario i programmi in JS devono sempre appoggiarsi a un browser e a una pagina html, per poter essere eseguiti.

Un altro svantaggio è con JS non si possono fare tutte quelle cose che sono possibili con i normali linguaggi di programmazione (per esempio, per ragioni di sicurezza, non si possono salvare file).

Anche il debugging (cioè la ricerca e la correzione degli errori) in JS può essere particolarmente complessa e a volte frustrante, per il fatto che l'esecutore (il browser) non segnala in alcun modo gli errori sintattici (come d'altra parte accade anche per gli errori in HTML). Tale problema è stato tuttavia in gran parte superato dagli strumenti di debugging integrati o disponibili come estensioni della maggior parte dei browser moderni.

Infine, per chi inizia a programmare, il JS sembra talvolta un linguaggio un po' troppo complesso, per via di una sintassi piuttosto varia e flessibile e di un sistema di oggetti di riferimento (il BOM e il DOM) assai complicato. La ragione di questo fatto è che il JS non è nato e non si è sviluppato per essere un linguaggio di programmazione generico né tantomeno un linguaggio di programmazione didattico: le sue potenzialità sono rivolte principalmente a un target di programmatori esperti o,al contrario, di "smanettoni", i quali vogliono semplicemente ottenere un certo risultato, senza preoccuparsi troppo della eleganza, leggibilità o anche congruenza logica del codice prodotto. Ciò indubbiamente potrebbe spaventare il programmatore alle prime armi.

Per queste ragioni, essendo il presente corso rivolto a chi inizia a programmare da zero in JS, l'approccio da noi seguito non sarà quello classico di molti altri corsi presenti in rete. Non inizieremo cioè a disquisire sulla programmazione ad oggetti o sui vantaggi e gli svantaggi del DOM rispetto al BOM (tutti argomenti davvero troppo criptici e iniziatici per chi è alle prime armi!). Adotteremo invece un approccio semplificato al linguaggio, riservandoci solo in un secondo tempo di affrontare in maggiore dettagli gli aspetti più tecnici e di approfondimento.

 

JavaScript e gli script

Occorre subito dissipare una possibile fonte di ambiguità: di solito, parlando di linguaggi di programmazione come il C, il Basic, il Pascal etc. si fa riferimento alla scrittura di programmi. Un programma è, in parole povere, una sequenza di istruzioni scritte in un certo linguaggio di programmazione per far eseguire a un computer un determinato compito. Per esempio Chrome è un programma, come pure Word, Excel o un qualsiasi videogioco.

In JavaScript si parla invece tecnicamente di script e il JS viene detto un linguaggio di scripting (per distinguerlo dai linguaggi di programmazione propriamente detti). A voler semplificare un po', uno script non è altro che un programma scritto per un linguaggio di scripting, come appunto il JS. Il lettore non potrà certo fare a meno di notare la ricorsività di questa definizione!

In realtà uno script assomiglia molto a un programma: come quest'ultimo, è composto da istruzioni scritte in un certo linguaggio (nel nostro caso il JavaScript). Tuttavia, mentre normalmente i linguaggi di programmazione consentono di produrre programmi autonomi (standalone, come detto precedentemente), il JS produce invece degli script che hanno bisogno di un browser per poter essere eseguiti. Dunque una prima definizione di script potrebbe essere: si tratta di un programma che viene eseguito all'interno di un browser o di altro ambiente esterno di appoggio.

Inoltre il JS è un linguaggio interpretato, nel senso che le sue istruzioni vengono eseguite una alla volta dal browser dell'utente (a differenza dei linguaggi compilati, come il C e anche il Java, in cui il programma viene prima interamente tradotto e quindi eseguito). Questa è un'altra importante differenza fra gli script e i normali programmi compilati.

Tuttavia, per chi inizia a programmare, queste differenza sono poco significative e rischiano di creare solo confusione. Per queste ragioni nel seguito considereremo a tutti gli effetti come sinonimi i due termini, programma e script. Qualche informatico magari si arrabbierà, ma pazienza!

 

successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it