AppleScript-Alternativen

Ich habe kürzlich AppleScript entdeckt. AppleScript bietet eine einfache, natürliche Möglichkeit, Tastatur-und-Maus-Interaktion mit Mac-Anwendungen programmgesteuert zu simulieren. AppleScript ist großartig, leidet jedoch unter den folgenden Problemen:

  1. Die neueste stabile Version stammt aus dem Jahr 2014 , und letztes Jahr wurde der AppleScript-Produktmanager entlassen und seine Position gestrichen.

  2. Die offizielle Dokumentation wurde seit Januar 2016 nicht mehr aktualisiert , und alle Tutorials und Nachschlagewerke, die AppleScript gewidmet sind, datieren nicht später als 2010 (mit Ausnahme von diesem , das ein Copy-and-Paste von irgendeinem Stackexchange zu sein scheint Fragen und Antworten mit dem AppleScript-Tag).

  3. Der Script Editor, die integrierte AppleScript-Entwicklungsumgebung, hat keine Debugging-Fähigkeiten. Es scheint nur eine kommerzielle IDE für AppleScript * zu geben . Sie sieht fantastisch aus und hat alle Debugging-Funktionen, die man von einer modernen IDE erwarten würde, aber sie kostet 100 US-Dollar, was zu teuer für meine Tasche wäre, selbst wenn Apple diese Programmiersprache nicht auslaufen zu lassen scheint (siehe Aufzählungspunkt #1 ).

Gibt es Alternativen zu AppleScript? Gibt es eine aktiv entwickelte und unterstützte Programmiersprache mit einer guten, billigen IDE und einer guten, aktuellen Dokumentation, die es ermöglicht, die Tastatur-und-Maus-Interaktion mit Mac-Anwendungen schnell und einfach zu simulieren? Vielleicht etwas wie das Apple-Pendant für Microsofts VBA (Visual Basic for Applications) für ihre Office-Suite unter Windows?


* Es scheint, dass es eine weitere AppleScript-IDE eines Drittanbieters gibt: Smile . Im Gegensatz zum Script Editor ist Smile kostenlos.

AppleScript ist das Gegenstück zu VBA :-) Welche Art von Problemen beabsichtigen Sie, mit AppleScript zu lösen, oder was für Alternativen die Leute vorschlagen könnten? Es sind einige Tools verfügbar, aber das spezifische hängt stark von Ihren Absichten ab.
@patrix: Nimm das zum Beispiel. Ich musste kürzlich Folgendes an einer Liste von 8000 beschädigten PNG-Bilddateien ausführen: 1. Öffnen Sie die Datei in der Vorschau, 2. Speichern Sie sie zurück. Dieses einfache Verfahren reichte aus, um die beschädigten META-Informationen der Dateien zu korrigieren. Mit AppleScript konnte ich das sehr einfach tun.
Berichte über den Niedergang von AppleScript sind möglicherweise verfrüht. Sein Design stammt von Mac OS 7.1 IIRC und ist von der Mac-Anwendung IPC abhängig. Shell-Skripte können Schnipsel von AppleScript mit dem Befehl osascript ausführen. Als Erweiterung haben C, C++ und Objective-C die gleiche Fähigkeit. Dies wäre jedoch umständlich im Vergleich zu (glaube ich) AppleScript-APIs, die für all diese Sprachen verfügbar sind. Und an Swift habe ich noch gar nicht gedacht. Von O'Reilly "Applescript und Python sind ziemlich unterschiedlich, können aber zusammen verwendet werden, um sehr effiziente Tools zu erstellen, ohne die Modularität von Python zu beeinträchtigen".
@DAVincent: Was meinst du mit "Und ich habe Swift noch nicht einmal in Erwägung gezogen"? Dass Swift eine praktische AppleScript-API hat? Oder dass Swift im Vergleich zu AppleScript besonders umständlich ist?
Verzeihung. Ich meinte, ich selbst habe mir nicht die Zeit genommen, herauszufinden, was der Plan mit Swift ist. Mein Geld würde bald in eine bequeme API fließen, wenn nicht schon jetzt. Und wenn Apple es nicht tut, würde nichts jemand anderen daran hindern, es zu tun.
@DAVincent: Sie haben eine Quelle zitiert, die behauptet, dass AppleScript und Python zusammen verwendet werden können. Laut dieser Seite ist das einzige empfohlene High-Level-Python-AppleScript-Modul AppScriptModule . Laut der Appscript-Modul-Homepage wird es jedoch "nicht mehr entwickelt oder unterstützt, und seine Verwendung wird für neue Projekte nicht empfohlen". Es scheint also, dass es derzeit kein brauchbares High-Level-Python-AppleScript-Interoperabilitätsmodul gibt.
Wenn Sie eine IDE für AppleScript wünschen, sehen Sie sich ScriptDebugger von Late Night Software ( latenightsw.com ) an. Es verfügt über Debugging und Breakpoints usw. und ist weitaus leistungsfähiger als Apples ScriptEditor. Es ist kommerziell, aber es lohnt sich, wenn Sie ein ernsthafter Skripter sind. Sie können auch viele der Methoden von Objective-C in AppleScript verwenden, was Ihnen eine Menge zusätzlicher integrierter Methoden zur Verfügung stellt, aber Ihr Skript komplexer macht. Besuchen Sie auch macosautomation.com für weitere Tipps.
Ich verstehe keine Ihrer drei Beschwerden über Applescript. Die Tatsache, dass es seit 2014 nicht aktualisiert wurde, spricht an sich nicht gegen das Tool. Und ich finde die Registerkarte "Antworten" des Applescript-Editors äußerst nützlich zum Debuggen - ich bin mir nicht sicher, was Sie mehr wollen als das für die Art von Aufgaben, für die Applescript entwickelt wurde.
Applescript ist übrigens einer der Gründe, warum ich mir nicht vorstellen kann, jemals wieder zu Windows zurückzukehren. Es gibt kein Äquivalent. Sie können Autohotkey und ähnliche Dinge verwenden, aber Windows-Software hat kein System wie Apple Events.

Antworten (3)

Erstmal: KEINE PANIK :)

Nein, es gibt keine guten/nützlichen/weniger schmerzhaften Alternativen zu Automator/AppleScript. Zumindest nicht, wenn Sie wirklich einige Arbeitsabläufe innerhalb der Benutzeroberfläche automatisieren müssen.

Ich hoffe, dass Apple mit der Übernahme von Workflow für iOS darauf abzielt, die Automatisierung von macOS und iOS zu bereinigen und zu vereinheitlichen. Träumen kann man, oder?
Workflow/Shortcuts ist deutlich weniger leistungsfähig als Applescript. Ein viel engerer Verwandter wäre Automator.

Seit Yosemite unterstützt OS X/macOS auch JavaScript als prozessübergreifende Skriptsprache – offiziell bekannt als JavaScript for Automation , auch als JXA bezeichnet . Die Dokumentation (und manche würden sagen, die Implementierung) ist im Vergleich zu AppleScript etwas dürftig, aber wenn Sie mit JavaScript bereits besser vertraut sind als mit AppleScript, dann könnte es eine Option sein.

Wie AppleScript bietet auch JXA eine ObjC-Brücke, mit der Sie Cocoa-APIs in Ihrem JavaScript verwenden können.

Ein Vorteil ist, dass es viel mehr Editoren und IDEs gibt, die für die JavaScript-Codierung entwickelt wurden als für AppleScript, obwohl Script Editor und Automator wahrscheinlich immer noch die Nase vorn haben, wenn es um das Debuggen von JXA-spezifischem Zeug geht.

Offizielle Ressourcen:

Einige inoffizielle Ressourcen:

Dies scheint die richtigste Antwort zu sein

Der von Ihnen erwähnte Skript-Debugger ist für die meisten Anwendungen kostenlos, mit einer Gebühr von 99,99 USD (1-2 Benutzer), nur für bestimmte erweiterte Funktionen.

Ich wäre nicht allzu besorgt über die mangelnde Entwicklung: Die Sprache ist sehr stabil, und Apps (einschließlich der von Apple) unterstützen weiterhin AppleScript.

Beispielsweise haben sich die AppleScript-Funktionen von Preview seit 2014 verbessert.