Connect with us

Новости

Apple выпустила язык программирования Pkl для описывания конфигураций

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

Опубликовано

/

     
     

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

Когда мы думаем о конфигурации, обычно вспоминают статические языки, такие как JSON, YAML или списки свойств. Хотя у этих языков есть свои достоинства, они, как правило, оказываются недостаточными, когда конфигурация становится сложнее. Например, недостаточная выразительность этих языков приводит к тому, что код часто повторяется. Кроме того, можно легко допустить ошибки в конфигурации, поскольку эти форматы не обеспечивают никакой проверки.

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

На другом конце спектра вместо этого может использоваться язык общего назначения. Такие языки, как Kotlin, Ruby или JavaScript, становятся основой для DSL, генерирующих конфигурационные данные. Хотя эти языки обладают огромными возможностями, их может быть неудобно использовать для описания конфигурации, поскольку они не ориентированы на определение и проверку данных. Кроме того, эти DSL, как правило, привязаны к своим собственным экосистемам. Трудно продать Kotlin DSL в качестве конфигурационного слоя для приложения, написанного на Go.

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

Pkl разработали с тремя главными целями:

  • Обеспечить безопасность, отлавливая ошибки валидации до развертывания.
  • Масштабирование от простых до сложных сценариев использования.
  • Чтобы было приятно писать, благодаря лучшим в своем классе интеграциям с IDE.

Фичи:

  • Генерируйте любые статические форматы конфигурации. Определите все ваши данные в Pkl и сгенерируйте вывод для JSON, YAML, списков свойств и других форматов конфигурации.
  • Интегрированная конфигурация приложений. Встраивайте Pkl в свои приложения для настройки рантайма и получайте генерацию кода для Java, Kotlin, Swift и Go.
  • Невероятная интеграция с IDE. Отличный инструментарий для написания Pkl с той же легкостью, что и для статически типизированных языков. Есть плагины и расширения для IntelliJ, Visual Studio Code и Neovim, а в ближайшее время появится поддержка протокола Language Server Protocol.
  • Отлавливайте ошибки перед развертыванием. С помощью богатой системы проверки типов и валидации вы можете отлавливать ошибки конфигурации до развертывания приложения.

Более подробно о языке вы можете узнать на официальном сайте.

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: