- Pkl(Pickle로 발음함)은 설정을 생성하기 위한 프로그래밍 언어로, 애플이 내부에서 사용하던 것을 오픈소스화 하여 첫 릴리스를 발표
-
"Configuration that is Programmable, Scalable, and Safe"
-
- JSON, YAML, Property Lists와 같은 정적 언어들은 복잡성이 증가할 때 한계가 있음
- Pkl은 정적 언어와 범용 프로그래밍 언어 사이의 조화를 목표로 함
Pkl 퀵 투어
- 개발자에게 친숙한 문법과 쉬운 학습을 위해 클래스, 함수, 루프, 타입 주석 등의 기능을 포함
- Pkl 파일은 설정 스키마를 정의하고, 다른 설정 데이터를 정의하는 데 사용됨
- Pkl 프로그램은 YAML, JSON, XML 등의 일반적인 형식으로 쉽게 렌더링될 수 있음
내장된 유효성 검사
- 데이터는 유효해야 하며, Pkl에서는 타입 주석을 사용하여 유효성을 달성함.
- 타입 주석은 제약 조건을 정의할 수 있으며, 실패하는 제약은 평가 오류를 발생시킴.
패키지 공유
- Pkl은 패키지를 게시하고 프로젝트에서 의존성으로 가져올 수 있는 기능을 제공함
- GitHub 릴리스로 패키지를 쉽게 생성 및 게시할 수 있으며, 프로젝트를 통해 의존성을 관리할 수 있음
언어 바인딩
- Pkl은 텍스트 출력으로 구성을 생성할 수 있으며, 다른 언어로 라이브러리로 내장될 수 있음.
- Pkl 스키마는 대상 언어의 클래스/구조체로 생성될 수 있으며, Swift, Go, Java, Kotlin 등을 지원함
편집기 지원
- Pkl 작성 경험을 최상으로 만드는 것을 목표로 함
- IntelliJ 플러그인을 포함하여 JetBrains 편집기를 위한 풍부한 지원을 제공함
- 자동 완성, 탐색, 유효성 검사 등의 기능을 제공하며, Language Server Protocol을 지원할 계획임
다음 단계
- Pkl에 대한 자세한 가이드, 언어 참조, GitHub Discussions를 통한 커뮤니케이션을 제안함
- Pkl 사용 예제를 위한 샘플 저장소와 CLI 다운로드, 편집기 플러그인 설치를 권장
GN⁺의 의견:
- Pkl은 설정 관리의 복잡성을 해결하기 위해 만들어진 새로운 프로그래밍 언어로, 개발자들에게 유용할 것으로 보임.
- 내장된 유효성 검사와 패키지 공유 기능은 코드의 재사용성과 유지 보수성을 향상시킬 수 있음.
- 다양한 언어로의 바인딩과 편집기 지원은 Pkl을 더 많은 개발 환경에 적용할 수 있게 하여, 개발자들이 보다 쉽게 설정 관리를 할 수 있도록 도와줄 것임.