У меня есть книга на AppleScript, и мне интересно, стоит ли мне ее хранить. Я уже знаю JavaScript.
Я понимаю, что Apple недавно добавила поддержку скриптов JavaScript в OS X.
Означает ли это, что мне не нужно больше изучать AppleScript для написания сценариев для приложений OS X, или это больше для него, чем для этого? Ваши мысли будут оценены.
Ответ 2
JavaScript for Automation (JXA) 1.0 достаточно, если вы готовы быть ранним усыновителем и готовы проявлять гибкость в том, какой подход к внедрению. С JXA 1.0 вам, возможно, придется делать такие вещи, как:
- используйте мост JXA-to-ObjC, когда мост JXA-to-Traditional-AppleEvents * не работает,
- создайте фильтр JavaScript, если запрос моста JXA 1.0
whose
не работает,
- ясно подумайте, когда использовать сторону Objective-C, мост JXA-new-stuff-bridge, традиционный-AppleEvents-мост или сторону JavaScript
* Сценарии событий Apple происходят с начала 1990 года, начиная с Classic MacOS 7. Начиная с 2006 года Apple рекомендует рассматривать механизмы событий Apple.
Примечание. События Apple не всегда являются наиболее эффективным или подходящим механизмом для обмена данными между процессами. OS X предлагает другие механизмы... [Apple, "Open Scripting Architecture" ]
Икеты AppleScript (AS) и JavaScript для автоматизации (JXA) имеют аналогичное покрытие автоматизации. Мосты AppleScript более зрелые. У механизма JavaScriptCore есть больше встроенных возможностей. Например, такие возможности, как regex, encodeURI, JSON.stringify, уже встроены в JavaScriptCore.
| Feature | AS | JXA |
|------------------------------|-----------|-----------|
| Scripting Dictionary | ✓ | ✓ |
| Standard Scripting Additions | ✓ | ✓ |
| JavaScriptCore | ‐ | ✓ |
| Apple Event Scripting | ✓ | ✓ |
| Cocoa Scripting | ✓ | ✓ |
| C function binding | ‐ | ✓ |
| Automator Support | ✓ | ✓ |
| #! shell runable | ✓ | ✓ |
| Debugger | 3rd Party | ‐ |
| Language Popularity | Niche | Broad |
Означает ли это, что мне не нужно больше изучать AppleScript для написания сценариев...?
Может быть, да.
Иногда полезно прочитать существующий пример AppleScript. Хотя, иногда более продуктивно бросать файл AppleScript и начинать без предварительного задуманного подхода.
BTW: вам все равно нужно понять словарь сценариев для любого используемого языка сценариев.
с точки зрения пользователя приложения, который хочет, чтобы приложение делало это автоматически?
Как пользователь приложения, JavaScript для автоматизации будет работать с ранее отмеченными оговорками. В частности, рассмотрите возможность использования дополнительных функций JavaScript и Cocoa и менее возможностей Apple Events.
Например, "Традиционный подход" Системные события "имеет преимущество простоты, но использование $.NSFileManager
дает значительно более высокую производительность". В одном случае $.NSFileManager
был на 300% быстрее, чем "Системные события". [JXA-Cookbook Wiki: Получение списка содержимого папки]
... по отношению к разработчикам приложений (Cocoa)? Могут ли они уйти, не изучая AppleScript, если они хотят сделать свои приложения сценарием?
Да и Нет.
Что контролирует разработчик - это объект и методы, открытые через словарь сценариев. Этот Scripting Dictionary (.sdef) должен быть выполнен для доступа с любого языка сценариев, включая Perl, Python и Ruby.
Итак, за кулисами разработчик предоставляет шлюз сценариев приложений, который является Objective-C/Cocoa ориентированным и обычно агностиком языка сценариев.
Что разработчики не контролируют, это скриптовые мосты (например, Cocoa Scripting, Apple Events, ObjC, C Function Binding). Сообщить об ошибках сценариев моста в Apple Bug Reporter.
У conciencious разработчика будет набор тестов для использования приложения Scripting Dictionary через любой язык сценариев, имеющий значение для своих клиентов. Хорошее покрытие теста будет автоматизировано и, вероятно, будет использовать несколько языков сценариев.
... уже знаю JavaScript, есть ли веская причина, по которой я должен больше изучить AppleScript?
Пока не будет создано больше документов JXA, некоторые существующие материалы AppleScript могут быть полезны для объяснения различных аспектов архитектуры сценариев.
Существующие автоматики AppleScript, обладающие квалифицированными экспертными знаниями AppleScript, в рабочих процессах, связанных с переносом доходов, могут быть консервативны при принятии JXA.
Если вы уже знаете JavaScript и автоматизация для вас лично, то JXA (с отмеченными оговорками) кажется разумным выбором.
Обновление: теперь Apple опубликовала Руководство по разработке сценариев Mac
Версия 2016-10-27. Новый документ, который содержит введение в использование AppleScript и JavaScript