Storicamente Apple ha mantenuto gran parte del suo software chiuso e proprietario. Tuttavia, negli ultimi anni, la Mela ha dimostrato un crescente interesse nell’aprire il suo codice sorgente e nel contribuire al mondo dell’open source. Nel 2014, Apple ha introdotto il linguaggio di programmazione Swift, per lo sviluppo di app iOS e macOS, rendendolo open source a dicembre 2015.
Il nucleo del sistema operativo macOS è chiamato Darwin ed è basato su UNIX: parte di esso è open source. Anche WebKit, il motore di rendering per browser Web, è stato aperto nel 2005.
Oggi Apple ha annunciato Pkl (Pickle, “cetriolo” in italiano), un linguaggio open source per la gestione delle configurazioni che sembra essere un’altra mossa nella stessa direzione.
Cos’è il linguaggio di programmazione Pkl (Pickle) e a cosa serve
Pkl, abbreviazione di Pickle, è un nuovo linguaggio di programmazione open source sviluppato da Apple per la gestione delle configurazioni. Adotta una sintassi dichiarativa e promuove la sicurezza dei tipi, migliorando la leggibilità, riducendo gli errori e potenziando la sicurezza delle configurazioni.
Si tratta di un linguaggio predisposto per semplificare la gestione delle impostazioni, come la luminosità del telefono, la password WiFi o le regole di un gioco. Anziché ricorrere a istruzioni passo-passo tipiche dei linguaggi imperativi, Pkl utilizza un formato chiave-valore simile a JSON.
L’idea è quella di mettere a fuoco la definizione degli stati desiderati anziché definire azioni specifiche, facilitando la comprensione e la manutenzione dei file di configurazione, soprattutto per coloro che sono meno familiari con le sintassi di scripting.
Al momento del lancio, Pkl supporta JSON, XML e liste di proprietà YAML in modo da generare file di configurazione statici.
Perché Apple si concentra su qualcosa che è, apparentemente, “di nicchia”?
Leggendo l’introduzione all’uso del linguaggio Pkl, si comprende subito che i tecnici Apple usavano Pkl già da diversi anni internamente all’azienda. Adesso, la società si apre ai contributi della comunità e mette a disposizione plugin di base per editor come Visual Studio Code e Neovim, che offrono l’evidenziazione della sintassi e suggerimenti a livello di codice.
Non solo. Pkl può già integrarsi fin da ora con Java, Kotlin, Swift e Go. C’è inoltre l’idea di supportare altri linguaggi in futuro. L’obiettivo è quello di semplificare le operazioni di configurazione: da quelle più contenute a quelle più estese, dalle semplici alle più complesse, da quelle “ad hoc” ad attività ripetitive.
Il team di sviluppo afferma inoltre che Pkl vuole essere più di un semplice supporto nel flusso di lavoro del programmatore, almeno per ciò che riguarda la configurazione software. Pkl può reggersi da solo come una libreria di configurazione “sicura, facile e piacevole da usare“.
Apple, insomma, ha creato Pkl perché ritiene che le attività di configurazione siano più facili da esprimere e gestire usando una miscela tra linguaggio statico e linguaggio di programmazione generico. “Il cetriolo” vuole unire il meglio di entrambi i mondi, fornendo un linguaggio dichiarativo e semplice da leggere e scrivere, arricchito con funzionalità prese in prestito dai linguaggi di uso generale.
Chi utilizza Pkl, può quindi usare funzionalità proprie dei linguaggi di sviluppo tradizionali: classi, funzioni, istruzioni condizionali e cicli. Si può condividere il codice sotto forma di pacchetti, gestire varie esigenze di configurazione, per produrre file di configurazione statici in qualsiasi formato, incorporare a runtime il codice come si farebbe con qualsiasi libreria in un’altra applicazione.
Credit immagine in apertura: Microsoft Bing Image Creator.