AppleScript

aus Wikipedia, der freien Enzyklopädie
AppleScript
Erscheinungsjahr: 1993
Entwickler: Apple
Aktuelle Version: 2.7  (16. Oktober 2014)
Typisierung: schwach, dynamisch, implizit
Betriebssystem: Mac OS, macOS
Lizenz: proprietär (Teile sind unter der APSL veröffentlicht)
developer.apple.com/applescript

AppleScript ist eine Skriptsprache von Apple. Sie ist Bestandteil des Betriebssystems macOS (ursprünglich unter dem Namen „Mac OS X“) sowie davor des klassischen Mac OS. AppleScript dient dazu, Mac-OS-Programme zu automatisieren, zu erweitern und innerhalb eines Rechnernetzes fernzusteuern.

Die erste Version von AppleScript basierte auf dem HyperCard-Projekt. HyperCard beinhaltete mit der Skriptsprache HyperTalk eine auf der englischen Sprache basierende Skriptsprache. Dadurch sind AppleScript-Programme auch für Personen, die nicht programmieren können, relativ einfach zu verstehen.

Nicht nur für AppleScript stand 2016 die Befürchtung im Raum, es könnte in macOS abgekündigt werden, nachdem einer der führenden Entwickler und Verfechter der Automatisierungstechnik bei Apple, Sal Soghoian, gekündigt worden war.[1]

Sprachsyntax

AppleScript ist an die natürliche englische Sprache angelehnt. Der Aufruf einer objektorientierten Methode geschieht wie folgt:

character 1 of item 2 of {"one", "two", "three"}

Auf Deutsch würde es so heißen:

Zeichen 1 von Element 2 von {"one", „two“, „three“}

In Java dagegen wie folgt:

String[] x = {"one","two","three"};
char y = x[1].charAt(0);

Applikationsübergreifende Kommunikation

AppleScript wird primär dazu benutzt, andere Programme von einem Programm aus „fernzubedienen“. Mac OS bzw. macOS bietet AppleEvents an, ein applikationsübergreifendes Kommunikationsprotokoll, mit dem es möglich ist, Nachrichten von einer Applikation zu einer anderen Applikation zu senden, so dass diese sich wie gewünscht verhält.

So kann man zum Beispiel aus einem Skript heraus eine Applikation anweisen, ein bestimmtes Dokument zu öffnen. Mit dem Wort „tell“ wird eine solche Nachricht z. B. an Word geschickt:

tell application  "Microsoft Word"
    open file "Diplomarbeit" of folder "Dokumente" of disk "Studium"
end tell

Auf Deutsch:

Sage Anwendung „Microsoft Word“
   Öffne Datei „Diplomarbeit“ aus Ordner „Dokumente“ aus Laufwerk „Studium“
Ende Sage

AppleScript zur Automatisierung

AppleScript ist nicht nur für applikationsübergreifende Aufgaben entworfen worden. Es kann u. a. auch eingesetzt werden, um häufig wiederkehrende Aufgaben zu automatisieren oder Berechnungen durchführen zu lassen. Ein Beispiel:

set pix to 72
set answer to text returned of (display dialog "Enter the length in inches" default answer "1")
display dialog answer & "in = " & (answer * pix) & "px"

Auf Deutsch würde es so heißen:

Setze Pixel auf 72
Setze Antwort auf eingegebenen Text von (zeige Dialog „Gib die Länge in Zoll ein“ Standardantwort „1“)
Zeige Dialog Antwort & " Zoll = " & (Antwort * Pixel) & " Pixel"

Es zeigt ein Dialogfeld und fragt nach der Länge in Zoll. Es wird dann berechnet, wie viele Pixel es auf dieser Länge geben wird. Ein zweites Dialogfeld zeigt dann das Resultat.

AppleScript-Dialekte

Apple ließ für eine kurze Zeit AppleScript sogar so erweitern, dass man die Skripte nicht zwingend auf Englisch schreiben musste. Man sollte die Skripte in der eigenen Muttersprache schreiben können. So wurde die Skriptterminologie auf Französisch, Japanisch und Italienisch übersetzt und Mac OS konnte diese von einem Dialekt in einen anderen Dialekt übersetzen. Dies funktionierte zwar, doch die Entwickler von Macintosh-Software (außerhalb von Apple) unterstützten die Mehrsprachigkeit von AppleScript wegen des großen Aufwandes nur unzureichend. Da auch der Support umständlich war, wurde diese Idee in Mac OS 8.5 und höher nicht mehr weiter verfolgt.

Literatur

  • Detlef Schulz: AppleScript – der automatische Mac. SmartBooks, Pfäffikon SZ 2009, ISBN 978-3-908497-78-3, S. 844.

Weblinks

Einzelnachweise

  1. Ben Schwan: Apple-Manager: macOS-Automation ist nicht tot. In: Heise online. 21. November 2016. Abgerufen am 10. Januar 2021.