Apple презентовал Pkl
В первый день февраля этого года компания Apple представила общественности релиз нового языка конфигурации – Pkl (произносится «pik(ə)l»). Главной целью его создания разработчики объявили упрощение процесса выполнения конфигурационных задач любой сложности, причём как единичных, так и повторяющихся. Новый язык является встраиваемым, обеспечивая поддержку шаблонов и проверку данных. Использовать его можно как из командной строки, так и внедряя в качестве библиотеки в приложения или интегрируя в конвейер автоматической сборки.
Если верить данным, опубликованным на OpenNET, весь инструментарий, связанный с Pkl, написан на языке Kotlin и пользуется лицензией Apache. Для работы с данным кодом подготовлены плагины, подходящие для таких сред разработки как IntelliJ, Neovim, Visual Studio Code.
Создавая Pkl, разработчики хотели получить язык, объединяющий лучшие качества статических языков с расширенными возможностями, свойственными языкам программирования общего назначения. Согласно их утверждениям, данная цель была достигнута. Pkl поддерживает привычные аннотации типов, функции, циклы, классы и условия. Но самое главное, что сохранить полученные файлы конфигурации можно в стандартных статичных форматах, таких как XML, YAML или JSON.
Несмотря на то, что с момента появления первого релиза Pkl прошло совсем мало времени, его поддержка уже реализована для таких языков как Kotlin, Go (он же Golang), Swift и Java. Имеется и модуль, позволяющий интегрировать Pkl с программной платформой Spring. Благодаря данным привязкам, взяв за основу конфигурации, созданные на языке Pkl, можно формировать готовые пакеты с соответствующими классами для работы в приложениях. Размещать пакеты можно в репозиториях, а в дальнейшем импортировать в виде зависимостей. Это позволяет использовать один код совместно с разными проектами.
Своеобразной «фишкой» Pkl является то, что он позволяет при помощи гибких средств сопоставления условий проверять корректность значений, вставленных в код. Это значит, что ошибки в итоговой конфигурации выявляются ещё до момента развёртывания приложения, например: в случае присвоения параметру недопустимого значения, валидатор выведет соответствующую ошибку.
В настоящий момент Pkl доступен для Linux и Alpine Linux, macOS, а также для Java (не ниже Java 8). Подробная информация выложена создателями Pkl на официальном сайте нового языка.