Pkl - Appleが作った設定向けプログラミング言語
(pkl-lang.org)- Pkl(「Pickle」と発音)は、設定を生成するためのプログラミング言語で、Appleが社内で使用していたものをオープンソース化し、初のリリースを発表
-
"Configuration that is Programmable, Scalable, and Safe"
-
- JSON、YAML、Property Listsのような静的言語には、複雑さが増すと限界がある
- Pklは、静的言語と汎用プログラミング言語の間の調和を目指している
Pkl クイックツアー
- 開発者に親しみやすい文法と学びやすさのために、クラス、関数、ループ、型注釈などの機能を含む
- Pklファイルは設定スキーマを定義し、ほかの設定データを定義するために使われる
- Pklプログラムは、YAML、JSON、XMLなどの一般的な形式に簡単にレンダリングできる
組み込みのバリデーション
- データは有効でなければならず、Pklでは型注釈を使ってバリデーションを実現する。
- 型注釈では制約条件を定義でき、制約に違反すると評価エラーが発生する。
パッケージ共有
- Pklは、パッケージを公開し、プロジェクトで依存関係として取り込める機能を提供する
- GitHub Releasesでパッケージを簡単に作成・公開でき、プロジェクトを通じて依存関係を管理できる
言語バインディング
- Pklはテキスト出力として設定を生成でき、ほかの言語にライブラリとして組み込むこともできる。
- Pklスキーマは対象言語のクラス/構造体として生成でき、Swift、Go、Java、Kotlinなどをサポートする
エディタサポート
- Pklは最高の記述体験を目指している
- IntelliJプラグインを含め、JetBrainsエディタ向けに豊富なサポートを提供する
- 自動補完、ナビゲーション、バリデーションなどの機能を提供し、Language Server Protocolのサポートも計画している
次のステップ
- Pklに関する詳細ガイド、言語リファレンス、GitHub Discussionsを通じたコミュニケーションを案内している
- Pklの使用例のためのサンプルリポジトリ、CLIのダウンロード、エディタプラグインのインストールを勧めている
GN⁺の意見:
- Pklは、設定管理の複雑さを解決するために作られた新しいプログラミング言語であり、開発者にとって有用そうだ。
- 組み込みのバリデーションとパッケージ共有機能は、コードの再利用性と保守性を向上させる可能性がある。
- さまざまな言語へのバインディングとエディタサポートにより、Pklをより多くの開発環境に適用できるようになり、開発者がより簡単に設定管理を行えるようになるだろう。
2件のコメント
もしかしてと思っていたら、Goバインディングがあるんですね。AppleもGoをかなり使っているようです。
apple/pkl-go: Pkl bindings for the Go programming language
Hacker Newsの意見