Airscript — это язык, используемый для создания приложений в Airkit Studio. Он начался со скромных начинаний и дошел до того, что это очень функциональный язык программирования. В этом посте мы поговорим о том, почему у нас есть Airscript, что это такое и о некоторых его основах.
Для получения подробной информации и справочной информации по Airscript ознакомьтесь со справочной документацией: https://support.airkit.com/reference/reference
Эти примечания основаны на моем мнении и официально не одобрены руководством Airkit. Я оставляю за собой право ошибаться во ВСЕМ.
Как это началось
Если не считать меня здесь, меня не было рядом, когда впервые изобрели Airscript, так что кое-что из этого пришло из третьих рук. Когда запустился Airkit (тогда он еще не назывался Airkit), команда хотела, чтобы платформа была дружелюбна к людям, работающим с данными. Нашей целью было создать язык для манипулирования данными, который имел бы несколько ключевых особенностей:
- Безопасность: мы имеем дело с конфиденциальными данными, поэтому никаких вычислений или чего-либо еще, что может вызвать проблемы.
- Знакомый: мы хотели язык, который показался бы знакомым большому количеству наших целевых разработчиков.
- Мощный: несмотря на потребность в безопасности, приложения Airkit работают с данными, иногда с большими объемами данных, и этот язык должен был предоставлять инструменты для просеивания данных, сортировки данных и изменения данных.
Из-за этих ключевых особенностей мы получили язык, в создании которого заложено несколько действительно отличных идей.
Безопасность
Были некоторые вопросы о том, зачем создавать новый язык вместо того, чтобы использовать Javascript в качестве нашего языка. Несмотря на то, что использование Javascript вызывает опасения по поводу привычности и простоты использования, одна из основных причин отказа от использования Javascript связана с безопасностью. Javascript имеет такие функции, как Eval()
, и функции, которые изменяют существующие данные. Поскольку Airscript использует чистые функции, происходит меньше изменений существующих данных.
Кроме того, поскольку мы контролируем язык, можно разрешить определенные действия, а не другие. Airscript предназначен для изменения и поиска данных. Для получения данных мы используем потоки данных и операции с данными.
Знакомство
Одной из основных возможностей Airscript является его библиотека функций. Набор функций был разработан таким образом, чтобы он был знаком всем, кто работает с электронными таблицами. Функции охватывают все, от математических функций, функций даты и функций изменения списка. Функции чисты в том смысле, что они не изменяют переданные данные, а возвращают новую копию данных после выполнения своего действия.
В дополнение к мощности функций, структура объекта также должна быть одинаковой для многих людей. Структура объекта очень похожа на JSON. Это означает, что если вы знакомы с Javascript и веб-технологиями, объекты должны быть очень удобными.
Мощный
Помимо сверхвыразительной библиотеки функций, у Airscript также есть пара мощных секретов в рукаве. Синтаксис запроса позволяет выполнять поиск наборов данных. Поскольку можно встроить выражение запроса внутрь выражения запроса, объем поиска, который пользователь может выполнять в данных, фактически не ограничен. Вот небольшой пример
FROM item IN collection WHERE item.score > 80 SELECT item
Хотя это похоже на SQL (который может показаться знакомым для некоторых), здесь есть некоторые тонкие отличия (например, выбор в конце).
Помимо синтаксиса запроса есть еще некоторые особенности JSONPath. Это еще один способ обработки коллекций данных и поиска нужных данных в списках и сложных объектах.
Заключение
Airscript все еще развивается. Мы все еще пишем новые функции (недавно я написал ADD_TO_DATE()
, и у нас есть несколько забавных новых операций сравнения для дат в следующей версии), но Airscript очень мощный и с самого начала поддерживает реализацию наших клиентов.
Для получения дополнительной информации о спецификации посетите справочную документацию: