2010-01-29 11 views
8

Cuando se trata de crear scripts en la Mac, ¿hay alternativas a Applescript? Su API parece increíble, pero el lenguaje en sí, por lo que he leído hasta ahora, parece dirigido más a los no programadores.Alternativas a Applescript?

La comprensión de esto sería de gran ayuda.

(Por el momento, estoy pensando en escribir un gestor de ventanas de mosaico para el Mac. Sí, sé que algunos existen, pero esto será de código abierto. Sí, sé de xmonad, pero sólo lo hace X11 windows.)

Gracias!

+0

Para mosaico de ventanas, las API de accesibilidad pueden ser su mejor opción, ya sea directamente o mediante la aplicación AppleScriptable System Events. Explore para encontrar información sobre ambos, por ejemplo: http://stackoverflow.com/questions/614185/window-move-and-resize-apis-in-os-x – has

+0

para ser honesto, el intento de Apple de hacer un lenguaje que no -la gente técnica puede entender, esto lo ha hecho * muy * difícil de entender para personas técnicas como yo. – Michael

Respuesta

3

Si Ruby es su cosa podría utilizar RubyOSA cual permite usar Ruby a interactuar con Event Manager de Apple:

http://rubyosa.rubyforge.org/

+0

Tenga en cuenta que el proyecto RubyOSA original ya no se mantiene o admite activamente. Creo que hay un fork de terceros en github que aborda los problemas de compatibilidad con las versiones más nuevas de Ruby; Dicho esto, existen alternativas más capaces y confiables que son apoyadas activamente. – has

0

Hay puentes hacia AppleScript desde ruby, Objective-C y otros.

1

Salida MacRuby. También hay enfoques interesantes con Python (principalmente para escribir complementos) y TCL/TK.

Quizás no sea la cosa para la finalidad que describes, pero también existe Quartz Composer, un entorno de programación visual ampliamente desconocido pero interesante con un gran potencial.

14

Cuando se trata de crear scripts en la Mac, ¿hay alternativas a Applescript?

Depende de lo que quieras hacer. Si desea enviar eventos de Apple a otras aplicaciones, sí; para ejecutar scripts desde aplicaciones compatibles con OSA (reglas de correo, acciones de carpetas, etc.), realmente no.

La mejor alternativa técnica es appscript (mi bebé), que está disponible para Python, Ruby y Objective-C en 10.4+. (También hay una versión de MacRuby, pero todavía tengo que hacer un lanzamiento público de eso.) La aplicación de aplicaciones en cuestión es ligeramente mejor que AppleScript y su compatibilidad de aplicaciones es casi tan buena. Proyecto de terceros, por lo que deberá instalarlo usted mismo (pero eso es lo suficientemente fácil siempre y cuando tenga Xcode) y licencia MIT para que pueda redistribuirlo según sea necesario (por ejemplo, incluido en su paquete de aplicaciones). Bastante decente tool y soporte de documentación, incluido un online book de Matt Neuburg, con soporte de listas de correo para las versiones de Python y Ruby y soporte directo por correo electrónico para los demás.

La alternativa 'oficial' es Scripting Bridge de Apple. La API parece muy parecida a Cocoa, pero eso es solo un montón de smoke and mirrors que finalmente lo hace menos capaz que AppleScript y significativamente más propenso a problemas de compatibilidad de aplicaciones (y difícil de solucionar cuando falla). La herramienta, la documentación y el soporte de la comunidad tampoco son tan buenos (AppScript es mejor, AppleScript es aún mejor). La principal ventaja de SB es que está incluida en 10.5+, por lo que no requiere instalación adicional para su uso. No lo recomendaría para el trabajo de automatización de trabajo pesado debido a sus deficiencias técnicas, pero para las tareas de automatización modestas que implican aplicaciones obligatorias, puede ser suficiente.

Existen otros puentes (por ejemplo, Mac :: pegamento de Perl, RubyOSA), pero no son tan capaces, populares y/o son compatibles.

Dicho todo esto, si desea realizar un script de aplicación serio, igual tendrá que aprender AppleScript, ya que allí encontrará la mayor parte de la literatura, ejemplos de scripts y conocimientos de la comunidad. Todo lo que necesitará, ya que la gran mayoría de las aplicaciones programables están muy poco documentadas.

+0

Buen trabajo, appscript se ve muy bien. –

+2

Lamentablemente, [el proyecto ya no se mantiene] (http://appscript.sourceforge.net/status.html) debido a las API que Apple ha desaprobado. –