Site icon AppTractor

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

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

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

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

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

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

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

Фичи:

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

Exit mobile version