Я бы хотел использовать MacRuby с ScriptingBridge вместо AppleScript для управления приложениями Mac, которые поддерживают AppleScript. Раньше я делал это с помощью appscript, который фактически устарел , отсюда и переместился MacRuby и скриптовый мост.
Единственная проблема, с которой я столкнулся, заключается в том, что загрузка ScriptingBridge занимает около секунды, даже на быстрой машине с быстрым SSD. Например, запуск этого простого скрипта занимает около 0,9 секунды, при этом загрузка фреймворка ScriptingBridge занимает почти все время:
#!/usr/bin/env macruby
framework "ScriptingBridge"
textedit = SBApplication.applicationWithBundleIdentifier("com.apple.TextEdit")
textedit.activate
Эквивалентный osascript выполняется около 70 миллисекунд, а py-appscript используется для получения аналогичного времени:
osascript -e 'tell application "TextEdit" to activate'
Есть ли какой-нибудь простой способ связать / скомпилировать / сжать скрипт MacRuby / ScriptingBridge во что-то, что запускается быстрее?
Я пытался использовать macrubyc для объединения сценария в автономный исполняемый файл, но полученный исполняемый файл не работает намного быстрее, чем сценарий при обычном запуске, и все равно для его запуска требуется около секунды.
(Моя догадка - нет, так как на этапе компиляции, подобном macrubyc, сложно определить, какие части инфраструктуры будут доступны сценарию, что затруднит оптимизацию.)