2010-01-29 4 views
8

Quando si tratta di script del Mac, ci sono alternative a Applescript? La sua API sembra fantastica, ma il linguaggio stesso, da quello che ho letto finora, sembra indirizzato più ai non programmatori.Alternative a Applescript?

Gli approfondimenti in questo sarebbero di grande aiuto.

(Al momento, sto pensando di scrivere un window manager piastrelle per il Mac. Sì, so che alcuni esistono, ma questo sarà open source. Sì, lo so di Xmonad, ma lo fa solo X11 windows.)

Grazie!

+0

Per finestra rivestimenti in piastrelle, le API di accessibilità può essere la soluzione migliore, direttamente o tramite l'applicazione Eventi AppleScriptable sistema. Scavare intorno per trovare informazioni su entrambi, per esempio: http://stackoverflow.com/questions/614185/window-move-and-resize-apis-in-os-x – has

+0

ad essere onesti, il tentativo di Apple di fare un linguaggio che non -la gente tecnica può capire ha reso * molto * difficile per le persone tecniche come me capire. – Michael

risposta

3

Se Ruby è la vostra cosa si potrebbe usare RubyOSA che permette di utilizzare Ruby per interagire con Event Manager di Apple:

http://rubyosa.rubyforge.org/

+0

Si noti che il progetto originale RubyOSA non viene più mantenuto o supportato attivamente. Penso che ci sia un fork di terze parti su github che risolve i problemi di compatibilità con le nuove versioni di Ruby; detto questo, ci sono alternative più capaci e affidabili che sono attivamente supportate. – has

0

Ci sono ponti verso AppleScript da ruby, ogg-c e altri.

1

Partenza MacRuby. Ci sono anche approcci interessanti con Python (principalmente per scrivere plugin) e TCL/TK.

Forse non è la cosa giusta per lo scopo che descrivi, ma c'è anche Quartz Composer, un ambiente di programmazione visiva molto sconosciuto ma interessante con un sacco di potenziale.

14

Quando si tratta di script del Mac, ci sono alternative a Applescript?

Dipende da ciò che si desidera fare. Se si desidera inviare eventi Apple ad altre applicazioni, sì; per l'esecuzione di script da applicazioni compatibili con OSA (regole di posta, azioni cartella, ecc.), non proprio.

La migliore alternativa tecnica è appscript (il mio bambino), che è disponibile per Python, Ruby e Objective-C il 10.4+. (C'è anche una versione MacRuby, ma devo ancora fare una pubblica release di questo.) L'app-script con le caratteristiche è leggermente migliore di AppleScript e la sua compatibilità con le applicazioni è quasi altrettanto buona. Progetto di terze parti, quindi dovrai installarlo tu stesso (ma è abbastanza facile fintanto che hai Xcode) e MIT concesso in licenza in modo da poterlo ridistribuire secondo necessità (ad esempio incluso nel pacchetto di applicazioni). Decentemente tool e supporto alla documentazione, incluso un online book di Matt Neuburg, con supporto per mailing list per le versioni Python e Ruby e supporto diretto via email per gli altri.

L'alternativa "ufficiale" è Apple Scripting Bridge. L'API sembra molto simile al Cocoa, ma in realtà è solo un bel po 'di smoke and mirrors che alla fine lo rende meno capace di AppleScript e molto più soggetto a problemi di compatibilità delle applicazioni (e complicato da risolvere quando va male). Lo strumento, la documentazione e il supporto della community non sono così grandi (l'appscript è migliore, AppleScript è ancora meglio). Il principale vantaggio di SB è che è incluso in 10.5+, quindi non richiede ulteriori installazioni da utilizzare. Non lo consiglierei per lavori di automazione pesanti a causa delle sue carenze tecniche, ma per compiti di automazione modesti che coinvolgono app obbligatorie può essere sufficiente.

Esistono altri bridge (ad esempio Mac :: Glue, RubyOSA di Perl), ma non sono altrettanto validi, popolari e/o supportati attivamente.

Detto questo, se si vuole fare uno script di applicazione serio, si dovrà comunque imparare AppleScript in quanto è lì che troverete la maggior parte della letteratura, esempi di script e competenze della comunità. Tutto ciò di cui avrete bisogno, poiché la maggior parte delle applicazioni con script è notoriamente poco documentata.

+0

Bel lavoro, la sceneggiatura sembra piuttosto interessante. –

+2

Purtroppo, [il progetto non viene più gestito] (http://appscript.sourceforge.net/status.html) a causa di API che sono state deprecate da Apple. –