Come scrivere i file di configurazione per far partire ambienti di sviluppo, di staging o di produzione, oppure per avviare container o cluster è stato un argomento che per anni ha animato gli IT Engineer fintanto che non si sono iniziati ad usare linguaggi come JSON e YAML per creare file di configurazione agnostici che venivano sfruttati da runtime per lanciare servizi.
Perché è nato Pkl
Linguaggi tradizionali come JSON e YAML hanno diversi limiti, tra questi:
- la ripetitività del codice;
- la facilità di commettere errori;
- la mancanza di validazione del codice.
Chiaramente questi limiti erano noti e si è cercato di superarli integrando i tradizionali linguaggi con altri tool e strumenti, ma facendo ciò si è aumentata ulteriormente la complessità e la difficoltà di comprensione del file stesso, soprattutto nel caso in cui siano più sviluppatori a dover interagire con il medesimo file.
Allora sono stati utilizzati altri linguaggi, nati per la programmazione come Kotlin, Ruby e Javascript, per cercare di ovviare ai limiti citati ma anche qui se ne sono evidenziati ed introdotti altri come la scarsa portabilità del codice.
Apple quindi ha creato e rilasciato al pubblico, in maniera open source, il proprio linguaggio di programmazione per scrivere file di configurazione: Pkl( pronunciato Pickle come la stessa Apple ha voluto precisare).
Pkl si propone di essere l’anello di congiunzione tra linguaggi statici (come JSON e YAML) e dinamici (come Kotlin, Ruby e Javascript) e di essere perfettamente creato per svolgere un unico e solo compito: scrivere file di configurazione in maniera efficiente, efficace, reliable e flessibile.
I vantaggi e le funzionalità di Pkl
I vantaggi di utilizzare Pkl sono evidenti e si concretizzano nelle funzionalità che ti fornisce come:
- utilizzo di capacità avanzate, comuni nei normali linguaggi di programmazione, come classi, funzioni, condizioni, loop, annotazioni, ecc…;
- semplicità nella scrittura e nella lettura del codice;
- creazione di layer astratti da condividere attraverso sistemi di template;
- generazione di file di configurazione in qualsiasi formato( per es. in JSON, YAML, XML);
- integrazione in altri runtime;
- validazione del codice prima del deployment;
- scalabilità da semplici casi d’uso a complesse architetture;
- integrazione con le comuni Integrated Development Environment (IDE) come IntelliJ IDEA(il plugin è disponibile al seguente link) per supportare autocompletamento, navigazione tra gli elementi e validazione del codice;
- modifica di altri oggetti attraverso gli amending (per es. è possibile utilizzare un operatore for per generare quattro differenti variazioni di una configurazione base di un database);
- pubblicazione di packages che possono essere importati in altri progetti( per es. Apple ha reso disponibili i suoi packages per pubblicare altri packages,pkl-pantry, e creare Kubernetes descriptor,pkl-k8s);
- language bindings attraverso la possibilità di essere integrato come una libreria in altri linguaggi di programmazione come Swift, Go, Java e Kotlin.
In poche parole, Pkl è uno strumento potentissimo per la gestione dei file di configurazione che trova la sua ideale applicazione in architetture IT complesse sia on-promise sia Cloud.
Glue Labs, Pkl ed i file di configurazione
Abbiamo utilizzato, implementato ed integrato file di configurazione complessi per architetture IT sia on-premise sia in Cloud e ti forniamo assistenza e supporto enterprise nella progettazione, sviluppo e delivery di qualsiasi applicazione ed architettura IT. Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e ti garantiamo le competenze per assisterti e supportarti per qualsiasi tuo progetto di sviluppo e nella realizzazione di applicazioni business critical con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.







