Pkl - ภาษาโปรแกรมสำหรับ Configuration ที่ Apple สร้างขึ้น
(pkl-lang.org)- Pkl (ออกเสียงว่า Pickle) เป็นภาษาโปรแกรมสำหรับสร้างการตั้งค่า โดย Apple ได้นำสิ่งที่ใช้ภายในองค์กรมาทำเป็นโอเพนซอร์สและประกาศรีลีสแรก
-
"Configuration that is Programmable, Scalable, and Safe"
-
- ภาษาคงที่อย่าง JSON, YAML และ Property Lists มีข้อจำกัดเมื่อความซับซ้อนเพิ่มขึ้น
- Pkl มีเป้าหมายเพื่อสร้างความลงตัวระหว่างภาษาคงที่กับภาษาโปรแกรมเอนกประสงค์
ทัวร์ด่วนของ Pkl
- มีฟีเจอร์อย่างคลาส ฟังก์ชัน ลูป และ type annotations เพื่อให้ไวยากรณ์คุ้นเคยสำหรับนักพัฒนาและเรียนรู้ได้ง่าย
- ไฟล์ Pkl ใช้กำหนดสคีมาของการตั้งค่า และใช้กำหนดข้อมูลการตั้งค่าอื่น ๆ
- โปรแกรม Pkl สามารถเรนเดอร์ออกมาเป็นฟอร์แมตทั่วไปอย่าง YAML, JSON, XML ได้อย่างง่ายดาย
การตรวจสอบความถูกต้องในตัว
- ข้อมูลต้องถูกต้อง และใน Pkl ใช้ type annotations เพื่อทำให้เกิดการตรวจสอบความถูกต้อง
- type annotations สามารถกำหนดข้อจำกัดได้ และหากข้อจำกัดไม่ผ่านจะทำให้เกิด evaluation error
การแชร์แพ็กเกจ
- Pkl มีความสามารถในการเผยแพร่แพ็กเกจและนำเข้ามาเป็น dependency ในโปรเจ็กต์ได้
- สามารถสร้างและเผยแพร่แพ็กเกจผ่าน GitHub Releases ได้อย่างง่ายดาย และจัดการ dependency ผ่านโปรเจ็กต์ได้
Language bindings
- Pkl สามารถสร้างคอนฟิกเป็นผลลัพธ์แบบข้อความ และฝังเป็นไลบรารีในภาษาอื่นได้
- สคีมาของ Pkl สามารถสร้างเป็นคลาส/สตรักต์ของภาษาเป้าหมายได้ โดยรองรับ Swift, Go, Java, Kotlin เป็นต้น
การรองรับเอดิเตอร์
- มีเป้าหมายเพื่อทำให้ประสบการณ์การเขียน Pkl ดีที่สุด
- ให้การรองรับอย่างครบถ้วนสำหรับเอดิเตอร์ของ JetBrains รวมถึงปลั๊กอิน IntelliJ
- มีฟีเจอร์อย่าง autocomplete, การนำทาง, การตรวจสอบความถูกต้อง และมีแผนรองรับ Language Server Protocol
ขั้นตอนถัดไป
- แนะนำคู่มืออย่างละเอียดสำหรับ Pkl, เอกสารอ้างอิงภาษา และการสื่อสารผ่าน GitHub Discussions
- แนะนำให้ลองใช้ sample repository สำหรับตัวอย่างการใช้งาน Pkl, ดาวน์โหลด CLI และติดตั้งปลั๊กอินเอดิเตอร์
ความเห็นของ GN⁺:
- Pkl เป็นภาษาโปรแกรมใหม่ที่สร้างขึ้นเพื่อแก้ปัญหาความซับซ้อนของการจัดการคอนฟิก และดูมีแนวโน้มว่าจะเป็นประโยชน์ต่อนักพัฒนา
- ความสามารถด้านการตรวจสอบความถูกต้องในตัวและการแชร์แพ็กเกจสามารถช่วยเพิ่มการนำโค้ดกลับมาใช้ซ้ำและความสามารถในการบำรุงรักษาได้
- การ bind เข้ากับหลายภาษาและการรองรับเอดิเตอร์จะช่วยให้ Pkl ถูกนำไปใช้กับสภาพแวดล้อมการพัฒนาได้หลากหลายขึ้น และช่วยให้นักพัฒนาจัดการคอนฟิกได้ง่ายขึ้น
2 ความคิดเห็น
ผมนึกว่าไม่มี แต่มี Go bindings อยู่เหมือนกันนะครับ ดูเหมือนว่า Apple ก็ใช้ Go อยู่ไม่น้อยเหมือนกัน
apple/pkl-go: Pkl bindings for the Go programming language
ความคิดเห็นจาก Hacker News