Originariamente pubblicato in data 09/08/1999
A
C
C
O
M
A
Z
Z
I
Introduzione ad AppleScript - 1
Corso di AppleScript, il linguaggio di sistema di Mac OS. Prima puntata
AppleScript è un linguaggio di programmazione (chi sa già programmare trova i suoi dati tecnici nel riquadro AppleScript per esperti). Assomiglia parecchio ad HyperTalk, il linguaggio che caratterizza HyperCard 2. Per esempio, si può scrivere:display dialog Qual è la tua rivista preferita? buttons {Le Scienze, Playboy, MacWorld} with icon 1
Eseguendo quella istruzione, appare una finestra di dialogo come quella che si vede qui sotto. È ovvio, quindi, che con AppleScript si possono scrivere semplici applicazioni con una certa facilità.

Il gergo di AppleScript
Una applicazione che supporta AppleScript può farlo con quattro diversi livelli di aderenza allo standard: come minimo deve accettare qualsiasi ordine proveniente da AppleScript con la stessa facilità con la quale accetta ordini provenienti dallutente. Una applicazione programmabile tramite AppleScript viene chiamata in inglese scriptable, e il programma è detto script (vedere Scriptable).Per scrivere uno script ex novo è necessario possedere qualche capacità come programmatore, e imparare ad usare le parole chiave e le caratteristiche del linguaggio. Ma questo non è indispensabile per ogni tipo di lavoro con AppleScript.
Alcune applicazioni, infatti, permettono la creazione automatica di uno script. Lutente deve semplicemente eseguire una serie di azioni; lapplicazione e AppleScript collaborano nel registrare queste azioni, e il risultato è uno script perfettamente valido che contiene tutte le istruzioni necessarie a replicare le azioni. Le applicazioni che supportano questa registrazione sono dette in inglese recordable (vedere Recordable).
Sempre per aiutare il neofita a creare gli script, altre applicazioni supportano il meccanismo detto paste reference. In questo caso si tratta di aiutare a creare il riferimento a un oggetto. Il programmatore di script che non sa come si chiami quel pulsante del quale vuole modificare la posizione, può selezionarlo e copiarlo. poi si sposta nelleditore di script e scegile da menu la voce paste reference: AppleScript e lapplicazione collaborano e nelleditore appare il riferimento corretto: per esempio il terzo pulsante della quinta scheda dello stack Agenda.
Altre applicazioni, infine, permettono di invocare gli script direttamente al loro interno. Lutente crea un pulsante, o unicona, che quando premuta provoca lesecuzione di uno script. In questo caso lapplicazione si dice attachable (vedere Attachable). Per esempio, si potrebbe scrivere uno script che estrae alcune cifre da una base di dati FileMaker Pro, le importa in Excel, crea un grafico con esse, e copia il grafico in un programma di trattamento testi. Lintero script potrebbe venire salvato in un bottone allinterno della maschera di FileMaker.

Il gergo in dettaglio - scriptable
1. Su un Macintosh dotato di AppleScript viene lanciata lapplicazione Script Editor: uno strumento per creare i programmi AppleScript2. Un utente esperto scrive uno script. Per esempio, un programma che trova tutte le occorrenze della parola AppleScript in un testo e le mette in grassetto.
3. Lo script può venire salvato come un documento dello Script Editor...
4. ...o come una nuova applicazione (in gergo AppleScript, applet). Le applet sono veramente minuscole, anche quando risolvono compiti complessi: quella del nostro esempio occupa solo 2 KB di spazio sul disco.
5. Lo script, quando eseguito, interagisce con lapplicazione di trattemento testi. I risultati sono gli stessi che si avrebbero se un utente avesse selezionato e messo in grassetto, una ad una, tutte le occorrenze della parola AppleScript.

Il gergo in dettaglio - recordable
Se líapplicazione con la quale vogliamo lavorare Ë ìrecordableî, cioË registrabile, creare uno script Ë ancora pi semplice. In questo caso...1. Si lancia lapplicazione Script Editor
2. Si preme il pulsante record delleditore
3. Si lanciano lapplicazione, o le applicazioni, con le quale si vuole lavorare. Si eseguono normalmente le operazioni che si desidera trasformare in uno script. Nel frattempo, AppleScript fa lampeggiare il simbolo di un registratore sopra la mela del Menu Apple, per ricordarci che sta seguendo le nostre azioni.
4. Una volta terminata la sessione di lavoro, si torna nello Script Editor e si preme il pulsante Stop.
5. Uno script completo appare automaticamente nella finestra dello Script Editor. Anchesso può venire salvato come applicazione o come documento di Script Editor; inoltre, può venire modificato o ritoccato a mano da un esperto di linguaggio AppleScript.

Appendice - AppleScript per esperti
Un piccolo spazio riservato agli esperti di informatica, per spiegare qualche dettaglio tecnico.AppleScript è un linguaggio di sistema, con il quale è possibile inviare istruzioni e richieste ai componenti del sistema operativo e alle applicazioni compatibili. Il suo analogo più prossimo allinfuori del mondo Apple è il linguaggio Rexx, che si incontra spesso nei programmi per Commodore Amiga.
Il linguaggio è semi-interpretato, e le parole chiave sono localizzabili. Quindi è possibile creare versioni nazionalizzate del linguaggio in cui, per esempio, anziché scrivere set style of selection to bold si scrive imposta a grassetto lo stile della selezione (si, lordine dei termini può venire localizzato). Attualmente Apple ha reso disponibile i dialetti inglese (su cui è basato questo corso), e giapponese. Sono in via di sviluppo il francese e il tedesco. Apple Italia non ha voluto rilasciare commenti quando abbiamo chiesto se e quando sarà rilasciato il dialetto italiano.
AppleScript è un linguaggio orientato alloggetto, basato sui concetti di classe, ereditarietà e polimorfismo. I campi degli oggetti possono essere manipolati dallesterno, oppure venire resi privati o a sola lettura. Lereditarietà discende da un singolo genitore, e non da genitori multipli come è possibile nel C++.
Gli oggetti possono fungere da agenti, e agire come task in background. Gli agenti
AppleScript ha variabili polimorfiche: il tipo della variabile può venire cambiato a runtime. Ha quindi qualche parentela con linguaggi tipo Lisp o APL, dato che i linguaggi tradizionali come C o Pascal impongono definizioni statiche di tipo.
I tipi incorporati del linguaggio sono gli interi, i reali, le date, le ore, le stringhe (non limitate a 255 caratteri), i record, le liste (gestite in modo trasparente allutente, quindi senza usare esplicitamente i puntatori) e i tipi definiti dallutente.
Le variabili possono essere persistenti, e mantenere il valore assegnato tra una esecuzione e la successiva.
Il linguaggio è estensibile: una applicazione può mettere a disposizione oggetti, costrutti e istruzioni che estendono la sintassi del linguaggio. Inoltre, è possibile scrivere in un linguaggio di programmazione tradizionale il codice per gestire nuovi comandi, in modo analogo a quanto fa HyperCard con XCMD e XFCN.