脚本编程语言之Pkl
2024-02-06 10:59:59 阿炯

苹果公司在2024年2月对外发布了专用于创建配置文件的脚本编程语言Pkl(发音为 Pickle)。采用ApacheV2.0协议授权。

A configuration as code language with rich validation and tooling.


Pkl 团队介绍称,该项目旨在应对 JSON、YAML 和属性列表等静态配置格式的不足,提供一种介于静态语言和通用语言之间、「两全其美」的方案。

示例代码

bird.pkl

name = "Swallow"

job {
  title = "Sr. Nest Maker"
  company = "Nests R Us"
  yearsOfExperience = 2
}



bird.json

{
  "name": "Swallow",
  "job": {
    "title": "Sr. Nest Maker",
    "company": "Nests R Us",
    "yearsOfExperience": 2
  }
}

Pkl 的三个设计目标是语法安全、可扩展和 IDE 集成,使用声明式语法、易读易写,但也支持类、函数、条件和循环等常见的编程语言功能。根据文档,Pkl 可用于生成任何格式的静态配置文件,也可以作为库嵌入在 Java、Kotlin、Swift、Go 等语言的代码中运行。


苹果还同步推出了支持 IntelliJ、Visual Studio Code 和 Neovim 等编辑器的 Pkl 插件,但没有为自家 IDE Xcode 开发插件。苹果还在 Pkl 网站上提供了该语言的“快速教程”。据介绍,Pkl 采用了类似于 JSON 的键值结构设计,而不是像其他传统编程语言那样采用命令式指令,支持 JSON、XML 和 YAML 静态配置文件,而且“未来还将增加对其他流行语言和平台的支持,实现单一配置语言的多语言配置解决方案”。

如果文件要呈现为静态配置文件,则文件名也将会与目标文件名匹配,例如 config.pkl 就会变成 config.yml。官方表示Pkl设计目标主要有三个:
1. 通过在部署之前捕捉验证错误来加强安全性。这意味着 Pkl 能够在代码运行前发现潜在的 Bug,从而避免出现问题。

2. 从简单到复杂的用例都可以进行扩展。Pkl 不仅仅局限于简单的配置,同时也能胜任复杂的用例。

3. 拥有业界一流的 IDE 集成,从而让用户在写代码的过程中更加舒服和高效。



最新版本:0.25
2024年2月上旬对外发布的初始版本。

官方主页:https://pkl-lang.org/