Pkl - Ngôn ngữ lập trình cho cấu hình do Apple tạo ra
(pkl-lang.org)- Pkl (đọc là Pickle) là một ngôn ngữ lập trình để tạo cấu hình, được Apple mã nguồn mở từ công cụ họ từng dùng nội bộ và công bố bản phát hành đầu tiên
-
"Configuration that is Programmable, Scalable, and Safe"
-
- Các ngôn ngữ tĩnh như JSON, YAML, Property Lists có những giới hạn khi độ phức tạp tăng lên
- Pkl hướng tới sự dung hòa giữa ngôn ngữ tĩnh và ngôn ngữ lập trình đa dụng
Dạo nhanh về Pkl
- Bao gồm các tính năng như lớp, hàm, vòng lặp, chú thích kiểu để có cú pháp quen thuộc với lập trình viên và dễ học
- Tệp Pkl được dùng để định nghĩa schema cấu hình và để định nghĩa dữ liệu cấu hình khác
- Chương trình Pkl có thể dễ dàng được render sang các định dạng phổ biến như YAML, JSON, XML
Kiểm tra hợp lệ tích hợp sẵn
- Dữ liệu phải hợp lệ, và trong Pkl điều này đạt được thông qua chú thích kiểu.
- Chú thích kiểu có thể định nghĩa các ràng buộc, và các ràng buộc không đạt sẽ tạo ra lỗi khi đánh giá.
Chia sẻ gói
- Pkl cung cấp khả năng phát hành gói và nhập chúng vào dự án dưới dạng phụ thuộc
- Có thể dễ dàng tạo và phát hành gói thông qua GitHub Releases, đồng thời quản lý phụ thuộc trong dự án
Language binding
- Pkl có thể tạo cấu hình dưới dạng đầu ra văn bản, đồng thời có thể được nhúng như một thư viện trong các ngôn ngữ khác.
- Schema Pkl có thể được sinh thành lớp/cấu trúc của ngôn ngữ đích, hỗ trợ Swift, Go, Java, Kotlin...
Hỗ trợ trình soạn thảo
- Mục tiêu là mang lại trải nghiệm viết Pkl tốt nhất có thể
- Cung cấp hỗ trợ phong phú cho các trình soạn thảo JetBrains, bao gồm plugin IntelliJ
- Cung cấp các tính năng như tự động hoàn thành, điều hướng, kiểm tra hợp lệ, và có kế hoạch hỗ trợ Language Server Protocol
Các bước tiếp theo
- Đề xuất xem hướng dẫn chi tiết, tài liệu tham chiếu ngôn ngữ và trao đổi qua GitHub Discussions về Pkl
- Khuyến nghị kho mẫu ví dụ sử dụng Pkl, tải CLI và cài plugin cho trình soạn thảo
Ý kiến của GN⁺:
- Pkl là một ngôn ngữ lập trình mới được tạo ra để giải quyết sự phức tạp của quản lý cấu hình, và có vẻ sẽ hữu ích cho các lập trình viên.
- Tính năng kiểm tra hợp lệ tích hợp sẵn và chia sẻ gói có thể cải thiện khả năng tái sử dụng và tính dễ bảo trì của mã nguồn.
- Binding sang nhiều ngôn ngữ và hỗ trợ trình soạn thảo đa dạng sẽ giúp Pkl được áp dụng trong nhiều môi trường phát triển hơn, từ đó giúp lập trình viên quản lý cấu hình dễ dàng hơn.
2 bình luận
Tôi cũng đang định thử thì thấy có binding cho Go rồi. Có vẻ Apple cũng dùng Golang khá nhiều.
apple/pkl-go: Pkl bindings for the Go programming language
Ý kiến trên Hacker News