Alternativas a AppleScript

Recientemente descubrí AppleScript. AppleScript ofrece una manera simple y natural de simular mediante programación la interacción del teclado y el mouse con las aplicaciones de Mac. AppleScript es genial, sin embargo, tiene los siguientes problemas:

  1. La última versión estable es de 2014 , y el año pasado se despidió al gerente de producto de AppleScript y se eliminó su puesto.

  2. La documentación oficial no se ha actualizado desde enero de 2016 , y todos los tutoriales y libros de referencia dedicados a AppleScript datan de 2010 a más tardar (con la excepción de este , que parece ser un copiar y pegar de algún intercambio de pila). Preguntas y respuestas con la etiqueta AppleScript).

  3. Script Editor, el entorno de desarrollo integrado de AppleScript, no tiene capacidades de depuración. Parece que solo hay un IDE comercial para AppleScript *. Se ve increíble y tiene todas las funciones de depuración que uno esperaría de un IDE moderno, pero cuesta $ 100, lo que sería demasiado caro para mi bolsillo, incluso si Apple no parece estar eliminando gradualmente este lenguaje de programación (vea el punto # 1 ).

¿Existen alternativas a AppleScript? ¿Existe un lenguaje de programación activamente desarrollado y compatible con un IDE bueno y económico y una buena documentación actualizada que haga posible simular la interacción del teclado y el mouse con las aplicaciones de Mac de una manera rápida y fácil? ¿Algo, tal vez, como la contraparte de Apple para VBA (Visual Basic para aplicaciones) de Microsoft para su suite de Office en Windows?


* Parece que hay otro IDE de AppleScript de terceros: Smile . A diferencia de Script Editor, Smile es gratuito.

AppleScript es la contraparte de VBA :-) ¿Qué tipo de problemas pretende resolver con AppleScript o cualquier otra alternativa que la gente pueda proponer? Hay algunas herramientas disponibles, pero la específica depende en gran medida de sus intenciones.
@patrix: Toma esto por ejemplo. Recientemente tuve la necesidad de realizar lo siguiente en una lista de 8000 archivos de imagen PNG corruptos: 1. Abra el archivo en Vista previa, 2. Vuelva a guardarlo. Este simple procedimiento fue suficiente para corregir la información META corrupta de los archivos. Usando AppleScript pude hacer esto muy fácilmente.
Los informes sobre la desaparición de AppleScript pueden ser prematuros. Su diseño data de Mac OS 7.1 IIRC y es interdependiente con la aplicación Mac IPC. Los scripts de shell pueden ejecutar fragmentos de AppleScript mediante el comando osascript. Por extensión, C, C++ y Objective-C tienen la misma capacidad. Sin embargo, eso sería engorroso en comparación con (creo) las API de AppleScript disponibles para todos esos idiomas. Y ni siquiera he considerado en Swift todavía. De O'Reilly "Applescript y Python son bastante diferentes, pero se pueden usar juntos para crear herramientas muy eficientes sin comprometer la modularidad de Python".
@DAVincent: ¿Qué quiere decir con "Y ni siquiera he considerado en Swift todavía"? ¿Que Swift tiene una conveniente API de AppleScript? ¿O que Swift es particularmente engorroso en comparación con AppleScript?
Lo siento. Quise decir que yo mismo no me he tomado el tiempo de averiguar cuál es el plan con Swift. Mi dinero estaría pronto en una API conveniente, si no ya. Y si Apple no lo hace, nada impediría que alguien más lo hiciera.
@DAVincent: Citó una fuente que afirmaba que AppleScript y Python se pueden usar juntos. Según esta página, el único módulo Python-AppleScript de alto nivel recomendado es AppScriptModule . Sin embargo, según la página de inicio del módulo appscript , "ya no está desarrollado ni soportado, y no se recomienda su uso para nuevos proyectos". Por lo tanto, parece que no hay ningún módulo de interoperabilidad Python-AppleScript de alto nivel viable en este momento.
Si desea un IDE para AppleScript, consulte ScriptDebugger de Late Night Software ( latenightsw.com ). Tiene depuración y puntos de interrupción, etc., y es MUCHO más capaz que el ScriptEditor de Apple. Es comercial, pero vale la pena si eres un guionista serio. También puede usar muchos de los métodos de Objective-C en AppleScript, lo que le brinda MUCHOS métodos integrados adicionales para usar, pero agrega complejidad a su secuencia de comandos. Visite también macosautomation.com para obtener otros consejos.
No entiendo ninguna de sus tres quejas sobre Applescript. El hecho de que no se haya actualizado desde 2014 no es en sí mismo un cargo en contra de la herramienta. Y creo que la pestaña "Respuestas" del editor de Applescript es extremadamente útil para la depuración; no estoy seguro de qué más querrías para el tipo de tareas para las que está diseñado Applescript.
Applescript, por cierto, es una de las razones por las que no puedo imaginar volver a Windows. No hay equivalente. Puede usar autohotkey y cosas similares, pero el software de Windows no tiene ningún sistema como Apple Events.

Respuestas (3)

En primer lugar: NO SE PINE EN PÁNICO :)

No, no hay alternativas buenas/útiles/menos dolorosas a Automator/AppleScript. Al menos no si realmente necesita automatizar algún flujo de trabajo dentro de la interfaz de usuario.

Espero que con la adquisición de Workflow para iOS, Apple tenga como objetivo limpiar y unificar la automatización de macOS e iOS. Uno puede soñar, ¿eh?
Workflow/Shortcuts es significativamente menos potente que Applescript. Un primo mucho más cercano sería Automator.

Desde Yosemite, OS X/macOS también es compatible con JavaScript como un lenguaje de secuencias de comandos entre procesos, conocido oficialmente como JavaScript para automatización , también conocido como JXA . La documentación (y algunos dirían, la implementación) es algo deficiente en comparación con AppleScript, pero si ya está más familiarizado con JavaScript que con AppleScript, entonces podría ser una opción.

Al igual que AppleScript, JXA también ofrece un puente ObjC que le permite usar las API de Cocoa en su JavaScript.

Una ventaja es que hay muchos más editores e IDE diseñados para la codificación de JavaScript que para AppleScript, aunque Script Editor y Automator probablemente todavía tengan la ventaja para depurar cosas específicas de JXA.

Recursos oficiales:

Algunos recursos no oficiales:

Esta parece la respuesta más correcta.

Script Debugger, que menciona, es gratuito para la mayoría de los usos, con una tarifa de $ 99.99 USD (1-2 usuarios), solo para ciertas funciones avanzadas.

No me preocuparía demasiado la falta de desarrollo: el lenguaje es muy estable y las aplicaciones (incluidas las de Apple) siguen siendo compatibles con AppleScript.

Por ejemplo, las capacidades de AppleScript de Preview han mejorado desde 2014.