4 votes

Python/Ruby/Perl/etc (ou même bash) peut-il remplacer AppleScript ?

Je n'invite pas les gens à détester AppleScript en général ; je me demande simplement si ce qui rend AppleScript utile peut être utilisé par d'autres langages de script à usage général. C'est à dire que Lion et Mac Apps donnent probablement à AppleScript des hooks et des APIs - est-ce que ça pourrait être le cas ? tout la langue les utilise ? Ou AppleScript fait-il partie d'une catégorie à part ?

Le contexte : Je suis en train d'apprendre à connaître Unix et comment il sous-tend OS X, et j'essaie de prendre conscience des opportunités et des stratégies d'automatisation et d'abstraction. Et j'ai déjà l'impression que mon cerveau fuit, alors si je dois en rajouter, j'essaie de le faire avec parcimonie.

2 votes

Ce ne sont que des outils. À moins que vous ne construisiez une maison, un marteau de charpentier est une chose plutôt inutile dont il faut se préoccuper. Quand vous apprenez, concentrez-vous sur sur la tâche à accomplir . Puisque votre cerveau a des fuites, je laisserais la philosophie pour un autre jour et reviendrais avec une question spécifique. Nous pouvons faire de meilleurs progrès sur ce front plutôt que de s'inquiéter sur des gorilles combattant des requins .

6voto

Nelson Points 1074

En ce qui concerne les scripts Unix à usage général, de nombreux langages comme bash, perl, Python ou ruby sont plus performants qu'AppleScript. Mais AppleScript a un rôle spécial dans MacOS avec un grand support natif pour les choses spécifiques à Mac, particulièrement liées à l'interface graphique.

Il existe des liens entre d'autres langages de script et les événements MacOS. Par exemple, voir le Modules OSA MacPython °°° ou celle d'Apple Ruby et Python pour Mac OS X °°°. En général, je considère ces efforts comme des citoyens de seconde classe ; ils peuvent fonctionner et constituer un bon choix, mais ils seront un peu mal adaptés.

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
°°° EDIT :
Les deux langues sont non pris en charge par les derniers systèmes MacOS . Ces liens renvoient :

Document retraité - Important : la version actuelle de Ruby (2.0) n'est pas supportée en tant que langage de script Cocoa dans OS X v10.9. Le reste du contenu le reste du contenu de ce document n'a pas été vérifié.
Apple recommande Objective-C pour le développement d'applications Cocoa. (Ma mise en évidence.)

Les documents sont terminés avec cette ligne :

Copyright © 2013 Apple Inc. Tous droits réservés. [ ] Mis à jour : 2013-09-18

1 votes

Comme la page Ruby et Python d'Apple n'a pas été mise à jour depuis 2007, il est certain qu'ils sont des citoyens de seconde zone :-)

3voto

kLy Points 2532

Ma réponse serait : oui

Applescript est un horrible anachronisme du Système 7 et, durant toutes mes années d'utilisation et de développement du Mac, je n'ai jamais pu me résoudre à en écrire une seule ligne.

OSE est un cadre soutenu par Apple qui vous permet d'accéder à tout ce qui se fait normalement par Applescript. Qu'il s'agisse de première ou de deuxième classe, seul Apple le sait. Java a été présenté par Apple comme un citoyen de première classe pour Cocoa jusqu'à ce qu'Apple le tue. Python et Ruby sont différents parce que ce sont des langages modernes, alors qu'Applescript est un vieux bordel et Apple le sait.

Pour ce qui est de Ruby, quelques options s'offrent à vous :

  1. rb-appscript - plutôt démodé
  2. RubyOSA
  3. ScriptingBridge pour Cocoa . Vous trouverez également un bon tutoriel sur ce sujet avec MacRuby à l'adresse suivante Ars Technica .

Je les ai utilisés de manière assez intensive ces dernières années et ils font très bien leur travail. Des équivalents similaires devraient exister pour Python.

1voto

Michael Points 3393

AppleScript fait partie d'une catégorie à part, car il est développé par Apple et possède ses propres mécanismes intégrés pour interagir avec le système Apple Events dans OS X. Je ne suis pas au courant d'un tel support intégré dans les autres langages de script que vous avez mentionnés.

Afin d'ajouter ce support dans vos scripts, vous pourriez utiliser un pont d'événement tel que appscript pour vous permettre d'exploiter les hooks AppleScript dans les applications à partir de Ruby ou Python. Je ne l'ai jamais utilisé moi-même, donc votre avis peut varier.

1voto

warren_s Points 952

Les philosophies de conception d'AppleScript et des langages de script en ligne de commande sont deux choses très différentes. Ils ont tous deux pour but de faire avancer les choses, mais s'y prennent de manière très différente.

AppleScript est destiné à vous aider à automatiser les tâches courantes de haut niveau basées sur l'interface graphique, afin que vous n'ayez pas à cliquer sur ceci et à taper cela encore et encore.

Les scripts en ligne de commande offrent généralement plus de souplesse et de puissance que l'AppleScript (à moins que vous ne connaissiez vraiment votre AS !), ce qui vous permet de pénétrer profondément dans les entrailles des API de type Unix de Mac OS X.

Pour résumer :

  • AppleScript : Automatisez vos logiciels basés sur une interface graphique.
  • Ligne de commande scripts : Faire la plupart des autres tâches.
  • Non, ils ne peuvent pas remplacer AppleScript car AS est plus proche de l'interface graphique pour de nombreuses tâches (il est très facile d'automatiser le montage d'un volume distant avec AppleScript, je ne voudrais pas essayer de le faire avec bash ou perl).

1voto

hdrz Points 147

Le javascript est officiellement supporté depuis OSX 10.10. Il est décrit par Apple comme "javascript for automation", abrégé en "JXA".

Juste pour clarifier les choses, vous pouvez accomplir en javascript tout ce qui est lié à l'interface et à l'automatisation, comme applescript et plus. De plus, il y a au moins une petite activité de commit en cours sur le wiki github pour https://github.com/JXA-Cookbook/JXA-Cookbook/wiki/Getting-the-Application-Instance .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X