PROGRAMMIAMO
JS - API
API (Application Programming Interface)

Una API (Application Programming Interface, cioè in italiano interfaccia di programmazione di un'applicazione) è un insieme di procedure (in pratica di funzioni) che un'applicazione (es. un browser o lo stesso sistema operativo) mettono a disposizione del programmatore per interagire con l'applicazione stessa.

Facciamo un esempio che può forse aiutare a chiarire il concetto. Pensiamo a un piccolo programma che deve scrivere la frase "Ciao a tutti" su una finestra nello schermo. Si tratta in effetti di un programma molto semplice, ma se andiamo a vedere nel dettaglio ciò che il programma deve realmente fare, ci accorgiamo che in effetti le cose non sono così semplici come possono sembrare.

Infatti i caratteri che compongono la frase ('C', 'i', 'a', 'o', ' ' - spazio bianco: è anch'esso un carattere -, 'a', ' ', 't', 'u', 't', 't', 'i') devono essere visualizzati sullo schermo del computer mediante l'accensione di puntini, detti pixel. In pratica ad ogni carattere corrisponde una matrice (cioè una "scacchiera") di pixel che lo rappresentano sullo schermo. Tale matrice dipende anche dal tipo di font (es. Arial, Times new roman, etc.) che si vuole usare per rappresentare il carattere. La figura seguente mostra una possibile matrice di pixel per rappresentare le prime lettere dell'alfabeto:

La corretta visualizzazione a schermo di ogni carattere richiede una complessa gestione della CPU, della memoria e della scheda video. Inoltre anche l'apertura di una finestra a video (su cui visualizzare la scritta) è un'operazione tutt'altro che banale a livello più basso del funzionamento del computer.

Non è difficile rendersi conto che, anche per questo semplicissimo esempio, i compiti da svolgere sono davvero molti e complessi. Inoltre se il programmatore potesse accedere e manipolare direttamente l'hardware della macchina a basso livello, si creerebbero problemi di integrità del sistema e di sicurezza (per esempio chi potrebbe impedirgli di cancellare la memoria destinata a un altro programma?).

Per fortuna tutti i computer moderni sono dotati di un Sistema Operativo, cioè di un insieme di programmi e di procedure che gestiscono direttamente l'hardware e il funzionamento del dispositivo. In pratica il Sistema Operativo frappone uno strato software (layer) fra i programmi utente e il computer: qualsiasi azione sull'hardware deve passare attraverso il Sistema Operativo stesso.

Usando il Sistema Operativo per fare le stesse cose il nostro programma potrebbe:

  1. caricare in memoria una struttura dati chiamata "font" fornita dal sistema operativo
  2. far visualizzare al sistema operativo una finestra vuota
  3. far disegnare al sistema operativo il testo "Ciao a tutti" sulla finestra utilizzando il font caricato

Ognuna delle operazioni precedenti viene portata a termine usando una o più API del sistema operativo (es. Windows). In pratica una API è una funzione predefinita che il programmatore può usare per svolgere in modo più semplice una grande quantità di compiti (es. gestire lo schermo, la tastiera, le stampanti, i menu nelle finestre, le icone dei programmi etc.).

Ma non è solo il sistema operativo Windows a usare delle API. Molte applicazioni mettono a disposizione le proprie API agli utenti, in modo da semplificare la scrittura di codice. Per esempio, tornando al problema di visualizzare la scritta "Ciao a tutti" sullo schermo, esso potrebbe anche essere risolto nel seguente modo, mediante codice Javascript incorporato in una pagina HTML:

xx = window.open("","","width=300,height=250");
xx.document.open();
xx.document.write("<html><body><p>Ciao a tutti</p></body></html>");
xx.document.close();

Quest'ultima soluzione è ovviamente la più semplice per il programmatore. Si noti che qui si stanno usando le API del browser di cui parleremo fra poco (window.open, document.open, document.write, document.close) per aprire una finestra secondaria e scriverci dentro in html. Tale API del browser a loro volta si appoggiano sulle API del sistema operativo per portare a termine il compito.

L'uso di API predefinite, rispetto alla soluzione "fai da te", ha anche il grande vantaggio di garantire una migliore standardizzazione degli applicativi. Per esempio se uso le API standard di Windows, il mio programma potrà funzionare con diverse CPU, diverse configurazioni hardware e, con certi limiti, anche con diverse versioni dello stesso Windows. Allo stesso modo i browser, sempre entro certi limiti, mettono a disposizione un set abbastanza standardizzato di API che garantiscono che la stessa pagina possa essere resa nello stesso modo in browser diversi su qualunque sistema operativo.

Le API sono essenziali per il computer come gli standard elettrici lo sono per una casa. Chiunque può inserire la spina del tostapane nella presa a muro della sua casa o dal vicino perché entrambe le case sono conformi ad uno standard. Se non ci fosse una interfaccia standard, occorrerebbe avere una centrale elettrica per fare un toast. Niente vieta che esistano più tipi di interfacce diverse, per esempio un tostapane europeo non può funzionare negli Stati Uniti senza un trasformatore; in modo simile, un programma scritto per Microsoft Windows non può essere eseguito direttamente su un sistema UNIX senza un API adapter come WINE.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it