DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

Introduzione ad AppleScript - 1

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à.


Una semplice finestra di dialogo creata con AppleScript

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 dall’utente. 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. L’utente deve semplicemente eseguire una serie di azioni; l’applicazione 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 nell’editore di script e scegile da menu la voce “paste reference”: AppleScript e l’applicazione collaborano e nell’editore 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. L’utente crea un pulsante, o un’icona, che quando premuta provoca l’esecuzione di uno script. In questo caso l’applicazione 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. L’intero script potrebbe venire salvato in un bottone all’interno della maschera di FileMaker.


FileMaker Pro è “attachable” -- ovvero, possiamo collegare un programma AppleScript a un suo oggetto

Il gergo in dettaglio - scriptable

1. Su un Macintosh dotato di AppleScript viene lanciata l’applicazione Script Editor: uno strumento per creare i programmi AppleScript
2. 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 l’applicazione 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”.


Una applicazione si dice “scriptable” quando accetta ordini da AppleScript. Qui vediamo un programma di trattamento testi a cui viene ordinato di mettere in grassetto 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 l’applicazione “Script Editor”
2. Si preme il pulsante “record” dell’editore
3. Si lanciano l’applicazione, 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. Anch’esso 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.


Una applicazione ìrecordableî, come il Finder, scriverý per noi un programma AppleScript semlicemente registrando le nostre azioni

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 all’infuori 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, l’ordine 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 all’oggetto, basato sui concetti di classe, ereditarietà e polimorfismo. I campi degli oggetti possono essere manipolati dall’esterno, oppure venire resi privati o a sola lettura. L’ereditarietà 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 all’utente, quindi senza usare esplicitamente i puntatori) e i tipi definiti dall’utente.
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.


Questo articolo fa parte di uno dei miei percorsi. Se vuoi saperne di più su questo argomento, visita il resto del percorso cliccando qui.