Как стать автором
Обновить

Релиз языка программирования от Apple для определения конфигурации под названием Pkl (произносится как Pickle)

Время на прочтение2 мин
Количество просмотров13K

Состоялся релиз языка программирования от Apple для определения конфигурации и продвигающего модель «конфигурация как код» под названием Pkl (произносится как Pickle).

Pkl  — это встраиваемый язык для определения конфигурации, который обеспечивает широкую поддержку шаблонов и проверки данных. Его можно использовать из командной строки, интегрировать в конвейер сборки или внедрить в приложения. Pkl масштабируется от малого к большому, от простого к сложному, от специальных до повторяющихся задач настройки конфигурации.

Согласно данным OpenNET, связанный с Pkl инструментарий написан на Kotlin и опубликован под лицензией Apache. Плагины для работы с кодом на языке Pkl подготовлены для сред разработки IntelliJ, Visual Studio Code и Neovim. В ближайшее время ожидается публикация обработчика LSP (Language Server Protocol).

Pkl сочетает свойства простого для восприятия декларативного языка с расширенными возможностями, свойственными для языков общего назначения. В языке Pkl поддерживаются аннотации типов, классы, функции, вычислительные выражения, условия и циклы.

Pkl может применяться как при генерации статических конфигураций в разных форматах, таких как JSON, YAML и XML, так и при формировании модулей для обработки заданных форматов конфигурации в приложениях на различных языках программирования.

Привязки для интеграции Pkl в приложения подготовлены для Java, Kotlin, Go и Swift. Отдельно предложен модуль для интеграции с фреймворком Spring. Привязки позволяют на основе конфигурации на языке Pkl сформировать готовые пакеты и модули с классами для работы с описанной конфигурацией в приложении. Пакеты с описанием конфигурации могут публиковаться в репозиториях и импортироваться в качестве зависимости, что допускает совместное использование кода Pkl между разными проектами.

Язык предоставляет гибкие средства для определения условий и проверок корректности значений, позволяющих выявлять ошибки в итоговой конфигурации на этапе до её применения в приложении. Например, можно определить допустимый диапазон значений ("port: Int(this > 1000)" или "age: Int(isBetween(0, 130))"), обязательность или необязательность заполнения и формат ("zipCode: String(matches(Regex("\d{5}")))"). В случае присвоения значения, не соответствующего условию, валидатор выведет ошибку (например, при попытке присвоить значение 100 параметру, определённому как "Int(this > 1000)").

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 10: ↑8 и ↓2+9
Комментарии17

Другие новости

Истории

Работа

Swift разработчик
27 вакансий
iOS разработчик
24 вакансии

Ближайшие события

19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн