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

Релиз языка программирования от 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 разработчик
41 вакансия
iOS разработчик
23 вакансии

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн