- Pkl (ausgesprochen wie Pickle) ist eine Programmiersprache zur Erzeugung von Konfigurationen, die Apple intern verwendet und nun als Open Source mit dem ersten Release veröffentlicht hat
-
"Configuration that is Programmable, Scalable, and Safe"
-
- Statische Sprachen wie JSON, YAML und Property Lists stoßen bei wachsender Komplexität an ihre Grenzen
- Pkl zielt auf eine Balance zwischen statischen Sprachen und allgemeinen Programmiersprachen ab
Kurze Tour durch Pkl
- Enthält Funktionen wie Klassen, Funktionen, Schleifen und Typannotationen für eine entwicklerfreundliche Syntax und leichte Erlernbarkeit
- Pkl-Dateien definieren Konfigurationsschemas und werden verwendet, um andere Konfigurationsdaten zu definieren
- Pkl-Programme können leicht in gängige Formate wie YAML, JSON und XML gerendert werden
Integrierte Validierung
- Daten müssen gültig sein, und in Pkl wird Gültigkeit mithilfe von Typannotationen erreicht.
- Typannotationen können Einschränkungen definieren; fehlschlagende Einschränkungen erzeugen einen Auswertungsfehler.
Paketfreigabe
- Pkl bietet die Möglichkeit, Pakete zu veröffentlichen und sie in Projekten als Abhängigkeiten einzubinden
- Pakete lassen sich einfach über GitHub Releases erstellen und veröffentlichen, und Abhängigkeiten können über Projekte verwaltet werden
Sprach-Bindings
- Pkl kann Konfigurationen als Textausgabe erzeugen und als Library in andere Sprachen eingebettet werden.
- Pkl-Schemas können als Klassen/Strukturen der Zielsprache generiert werden und unterstützen unter anderem Swift, Go, Java und Kotlin
Editor-Unterstützung
- Ziel ist es, die Authoring-Erfahrung für Pkl optimal zu gestalten
- Bietet umfangreiche Unterstützung für JetBrains-Editoren, einschließlich eines IntelliJ-Plugins
- Bietet Funktionen wie Autovervollständigung, Navigation und Validierung; Unterstützung für das Language Server Protocol ist geplant
Nächste Schritte
- Empfohlen werden ein ausführlicher Leitfaden zu Pkl, die Sprachreferenz und die Kommunikation über GitHub Discussions
- Empfohlen werden außerdem ein Sample-Repository für Pkl-Anwendungsbeispiele, der Download der CLI und die Installation von Editor-Plugins
Meinung von GN⁺:
- Pkl ist eine neue Programmiersprache, die geschaffen wurde, um die Komplexität des Konfigurationsmanagements zu lösen, und dürfte für Entwickler nützlich sein.
- Die integrierte Validierung und die Paketfreigabe können Wiederverwendbarkeit und Wartbarkeit von Code verbessern.
- Bindings für verschiedene Sprachen und Editor-Unterstützung machen Pkl in mehr Entwicklungsumgebungen einsetzbar und werden Entwicklern helfen, Konfigurationsmanagement einfacher umzusetzen.
2 Kommentare
Ich dachte mir schon, aber es gibt tatsächlich Go-Bindings. Apple scheint ebenfalls viel Go zu verwenden.
apple/pkl-go: Pkl bindings for the Go programming language
Hacker-News-Kommentare
ini-Dateien oder in der Windows-Registry gespeichert und konnten auch manuell bearbeitet werden. Heute muss man eine 87 MB große binäre Programmiersprache verwenden, um Konfigurationsdateien zu erzeugen, und um diese Sprache selbst auszuführen, muss man ebenfalls manuell eine Konfigurationsdatei erstellen. In dieser Lage scheint bald ein 500-GB-Framework nötig zu sein – für eine Programmiersprache, die Konfigurationsdateien erzeugt. Es wirkt, als würden moderne Entwickler davon leben, Probleme zu erschaffen.k8s-Konfiguration erfolgreich nachpklmigriert und mitpklaußerdem Konfigurationen für zwei Monitoring-Tools, eine statische Dokumentations-Website sowie Alert-Definitionen erstellt, die alles miteinander verbinden. Das Tool ist sehr empfehlenswert, und es ist aufregend, es wieder nutzen zu können.pklzu einer Software hinzufügt, beteiligt sich letztlich an dem entstehenden Konfigurationsmonster. Dahinter steht die Annahme, dass ein vereinheitlichtes System weniger schlecht ist als strukturloses Chaos.