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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Состоялся релиз языка программирования от 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}")))"). В случае присвоения значения, не соответствующего условию, валидатор выведет ошибку (например, при попытке присвоить значение 1001 параметру, определённому как "Int(this > 1000)").

Источник: https://habr.com/ru/news/791296/


Интересные статьи

Интересные статьи

Состоялся релиз обновления iOS 17.2, в котором появилось приложение Journal. С его помощью пользователи могут вести личный дневник и записывать свои мысли. Для разработчиков Apple опубликовала API и д...
Поскольку мы все с нетерпением ждем скорого выпуска JDK 20, список функций, которые появятся в JDK 21 этой осенью, также постепенно проясняется.Сегодня мы рассмотрим тему того, что принесет следующий ...
Дорогие любители литературы! Рады сообщить, что наш литературный сайт приступает к работе. Приглашаем писателей – и читателей, само собой разумеется.***С сегодняшнего дня на сайте функционирует сервис...
Сегодня у нас околоразвлекательная тема, но с подтекстом. Больше половины контент-отдела EnglishDom смотрит мультики. А так как мы онлайн-школа английского языка, то почт...
Продолжаем рассказ о создании мультипарадигменного языка программирования, сочетающего декларативный логический стиль с объектно-ориентированным и функциональным, который был бы удобен пр...