4 votos

¿Puede Python/Ruby/Perl/etc (o incluso bash) sustituir a AppleScript?

No estoy invitando a la gente a odiar AppleScript en general; sólo me pregunto si lo que hace que AppleScript sea útil puede ser utilizado por otros lenguajes de scripting de propósito general. Es decir, Lion y Mac Apps probablemente den a AppleScript ganchos y APIs - ¿podría cualquier ¿usan esos lenguajes? ¿O AppleScript está en su propia categoría especial?

Contexto: Estoy aprendiendo sobre Unix y cómo subyace en OS X, y tratando de tomar conciencia sobre las oportunidades y estrategias de automatización y abstracción. Y ya siento que mi cerebro está goteando, así que si tengo que añadir más cosas a mi plato, trato de hacerlo con moderación.

2 votos

Sólo son herramientas. A menos que estés construyendo una casa, un martillo de carpintero es algo bastante inútil de lo que preocuparse. Cuando estés aprendiendo - céntrate más en la tarea que se está llevando a cabo . Ya que tu cerebro está goteando, yo dejaría la filosofía para otro día y volvería con una pregunta específica. Podemos progresar mejor en ese frente en lugar de preocuparnos por gorilas luchando contra tiburones .

6voto

Ross M Karchner Puntos 45

En términos de scripting Unix de propósito general, muchos lenguajes como bash, perl, Python o ruby son más capaces que AppleScript. Pero AppleScript tiene un papel especial en MacOS con un gran soporte nativo para cosas específicas de Mac, particularmente relacionadas con la GUI.

Existen enlaces entre otros lenguajes de scripting y eventos de MacOS. Por ejemplo, véase el archivo Módulos OSA de MacPython °°° o de Apple Ruby y Python para Mac OS X °°°. En general, yo consideraría estos esfuerzos como ciudadanos de segunda clase; pueden funcionar y ser una buena opción, pero será un ajuste un poco incómodo.

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
°°° EDIT:
Ambos idiomas son no es compatible con los últimos sistemas MacOS . Estos enlaces devuelven:

Documento retirado - Importante: La versión actual de Ruby (2.0) no es soportado como lenguaje de scripting Cocoa en OS X v10.9. El resto del contenido de este documento no ha sido revisado en cuanto a su exactitud.
Apple recomienda Objective-C para el desarrollo de aplicaciones Cocoa. [Mi resaltado.]

Los documentos se terminan con esta línea:

Copyright © 2013 Apple Inc. Todos los derechos reservados. [ ] Actualizado: 2013-09-18

1 votos

Como la página de Ruby y Python en Apple no se ha actualizado desde 2007, seguro que son ciudadanos de segunda clase. :-)

3voto

kLy Puntos 1439

Mi respuesta sería: sí

Applescript es un horrible anacronismo del Sistema 7 y en todos mis años de uso y desarrollo de Mac nunca me atreví a escribir una sola línea de él.

OSA es un marco apoyado por Apple que permite acceder a todo lo que normalmente se hace a través de Applescript. Si es de primera o segunda clase, sólo Apple lo sabe. Java fue promocionado por Apple como un ciudadano de primera clase para Cocoa hasta que Apple lo mató. Sin embargo, Python y Ruby son diferentes porque son lenguajes modernos mientras que Applescript es un lío antiguo y Apple lo sabe.

Hablando específicamente desde el punto de vista de Ruby, tienes algunas opciones:

  1. rb-appscript - bastante anticuado
  2. RubyOSA
  3. ScriptingBridge para Cocoa . También un buen tutorial sobre ello con MacRuby en Ars Technica .

Los he usado bastante en los últimos años y hacen el trabajo muy bien. Deberían existir equivalentes similares para Python.

1voto

Michael Puntos 3393

AppleScript está en su propia categoría especial, ya que está desarrollado por Apple y tiene sus propios mecanismos incorporados para interactuar con el sistema de eventos de Apple en OS X. No tengo conocimiento de ningún soporte incorporado en los otros lenguajes de scripting que has mencionado.

Para añadir ese soporte en tus scripts, podrías utilizar un puente de eventos como appscript para permitirte aprovechar los ganchos de AppleScript en aplicaciones desde Ruby o Python. Yo nunca lo he utilizado, así que su kilometraje puede variar.

1voto

warren_s Puntos 952

Las filosofías de diseño de AppleScript y de los lenguajes de scripting de línea de comandos son dos cosas muy diferentes. Ambos tienen como objetivo hacer las cosas, pero lo hacen de maneras muy diferentes.

AppleScript está pensado para ayudarte a automatizar tareas comunes de alto nivel basadas en la GUI, para que no tengas que hacer clic en esto y escribir aquello una y otra vez.

Los scripts suelen ofrecer más flexibilidad y potencia que AppleScript (a no ser que realmente conozcas tu AS), permitiéndote profundizar en las entrañas de las APIs de tipo unix de Mac OS X.

Para resumir:

  • AppleScript : Automatice su software basado en GUI.
  • Línea de comandos scripts : Hacer la mayoría de las otras tareas.
  • No, no pueden reemplazar a AppleScript porque AS está más cerca de la GUI para muchas tareas (es muy fácil automatizar el montaje de un volumen remoto en AppleScript, no me gustaría intentarlo en bash o perl).

1voto

hdrz Puntos 117

Javascript es oficialmente soportado desde OSX 10.10. Es descrito por apple como "javascript para la automatización", abreviado como "JXA".

Sólo para aclarar las cosas, se puede lograr en javascript todo lo que está relacionado con la gui y la automatización, como applescript y más. Además, hay al menos un poco de actividad de commit en el wiki de github para https://github.com/JXA-Cookbook/JXA-Cookbook/wiki/Getting-the-Application-Instance .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X