脚本编程语言之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/
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/