Direi che l'opzione 1 potrebbe essere la soluzione migliore, a causa di come funziona Applescript.
Esistono due tipi di oggetto Applescript: testo semplice in formato applescript, quindi compilato in formato applescript. AppliedScript conforme è stato tradotto (essenzialmente) in bytecode dal compilatore Applescript.
Quindi, se la tua applicazione lo consente, puoi prendere in considerazione la compilazione di tutti i tuoi Applescript una volta, quindi chiamarli in un secondo momento. Questo ti farà risparmiare un po 'di tempo (secondi?).
(sto solo indovinando qui che, oltre al comando eval
, la classe Java ha un modo per compilare solo Applescript.)
Durante la fase di compilazione, Applescript cerca anche di identificare tutte le applicazioni i usi di script. Credo che sia durante questa fase in cui Applescript potrebbe dire: "Mi dispiace, non riesco a trovare SurfWriter, per favore indicami l'app". Questo tipo di esperienza utente è una di quelle cose che l'utente vuole fare il meno possibile;)