AppleScript

Da Wikipedia, l'enciclopedia libera.
AppleScript
Script Editor macOS Sierra.png
Convertitore cm in pixel.
AutoreApple Inc.
Data di origine1993
Ultima versione2.7 (16 ottobre 2014)
Utilizzo{{{utilizzo}}}
ParadigmiScripting
Tipizzazione{{{tipizzazione}}}
Estensioni comuni.scpt, .scptd, .AppleScript
Implementazione di riferimento
Sistema operativoSystem 7, Mac OS 8, Mac OS 9, macOS
LicenzaProprietaria
Sito web

AppleScript è un sistema di scripting introdotto dalla Apple Inc. e integrato nel proprio sistema operativo macOS. In altre parole, AppleScript rappresenta l'interfaccia di script al macOS e quindi lavora tramite un'interfaccia grafica.

Con l'avvento di Mac OS X Tiger, è possibile usare Automator per generare script disegnando un diagramma di flusso. Il manager del progetto AppleScript è Sal Soghoian.

Storia[modifica | modifica wikitesto]

Il progetto AppleScript può essere considerato come una prosecuzione di HyperTalk, il linguaggio utilizzato da HyperCard per gestire la logica e l'interfaccia grafica. Il progetto AppleScript nacque dalla convinzione Apple secondo cui un simile linguaggio poteva essere usato con ogni applicazione.

La metafora della lingua naturale[modifica | modifica wikitesto]

Mantenendo la tradizionale semplicità d'uso del macOS, il linguaggio AppleScript è costruito come una metafora di una lingua naturale, allo stesso modo in cui la normale interfaccia grafica desktop è costruita come metafora della scrivania. In questo modo, il concetto di gerarchia di un oggetto viene espresso mediante delle proposizioni concatenate (in lingua inglese):

pixel 7 of row 3 of TIFF image "miaImmagine"

che in un altro linguaggio di alto livello potrebbe essere scritto come:

getTIFF( "miaImmagine" ) -> getRow(3) -> getPixel(7)

Compiti principali di AppleScript[modifica | modifica wikitesto]

L'uso primario di AppleScript doveva essere quello di controllare altre applicazioni; per questo scopo dipende dal protocollo di comunicazione del macOS chiamato AppleEvents. Si tratta essenzialmente di messaggi spediti tramite codici da un'applicazione a un'altra: AppleScript usa i dizionari di ogni applicazione per associare a tali codici dei termini comprensibili, permettendo quindi la comunicazione nei due sensi tra codici AppleEvents e termini AppleScript.

L'applicazione alla quale il messaggio deve essere spedito è richiamata dal comando "tell":

tell application "Microsoft Word" to quit

D'altra parte, AppleScript non ha bisogno di altre applicazioni per effettuare operazioni su dati. Per esempio, il codice seguente:

set pix to 72
set answer to text returned of (display dialog "Inserire la misura in cm" default answer "1")
display dialog answer & "cm = " & (answer * pix / 2.54) & "pixel"

mostra una finestra di dialogo, per l'inserimento da parte dell'utente dei centimetri. La risposta viene convertita in pixel per un sistema a 72 pixel per pollice; il risultato viene mostrato tramite una seconda finestra di dialogo.

AppleScript Studio[modifica | modifica wikitesto]

Magnifying glass icon mgx2.svgLo stesso argomento in dettaglio: Applescript Studio.

Con l'avvento di macOS, AppleScript è andato ben oltre le sue origini: Applescript Studio è un ambiente di sviluppo gratuito che usa AppleScript come linguaggio principale e in cui l'interfaccia grafica viene progettata tramite il framework ProjectBuilder.

Con l'uscita di Mac OS X Panther, AppleScript Studio e Project Builder sono stati inseriti nell'ambiente di sviluppo integrato Xcode. Il tutto permette di costruire l'interfaccia grafica tramite drag and drop (similmente a quanto avviene, ad esempio, con Visual Basic) e verificare immediatamente come verrà vista nell'applicazione.

Mac OS X 10.3 contiene, come tutte le precedenti versioni di macOS, anche uno editor di script che, pur mantenendo la semplicità originale, permette di costruire script anche complicati, utilizzando alcune caratteristiche di aiuto che ne permettono l'uso anche a principianti.

Dialetti[modifica | modifica wikitesto]

Per un certo periodo, AppleScript supportò il linguaggio in diverse lingue (tra le quali, oltre all'inglese, ci furono francese, giapponese e italiano). Esso era in grado di compilare uno script scritto in una qualsiasi di queste lingue e di salvare in un dialetto diverso; anche se il progetto rappresentò un successo tecnico, pochi sviluppatori fornirono dizionari nelle varie lingue per le proprie applicazioni. Inoltre, il supporto e le prove di controllo qualità si rivelarono molto dispendiose rispetto al possibile guadagno: dalla versione Mac OS 8.5 si tornò ad una sola lingua supportata (l'inglese).

Caratteristiche essenziali del linguaggio[modifica | modifica wikitesto]

  • tipi di dati: string, integer, real, list, record, object
    • in una lista possono coesistere tipi diversi
    • i record sono liste di coppie "nome-valore"
  • strutture di flusso standard (if…then…else, cicli repeat, while)
  • le variabili sono create al momento dell'uso
  • gli oggetti possono contenere sia dati che metodi
  • gli oggetti ereditano dai moduli padre
  • struttura tell per identificare il destinatario del messaggio
  • le applicazioni possono definire i termini al runtime
  • possibile la compilazione runtime con la struttura run script
  • possibile la persistenza usando i comandi store/load script

Collegamenti esterni[modifica | modifica wikitesto]

Apple Portale Apple: accedi alle voci di Wikipedia che trattano di Apple