Apple présente Pkl, un langage de programmation pour la configuration

Anthony Nelzin-Santos |

Apple présente Pkl, prononcé pickle comme un cornichon, « un langage de programmation pour la configuration ». Les fichiers de configuration des environnements de développement, des intégrations continues ou d’autres projets sont généralement rédigés avec des langages statiques comme JSON ou YAML. Pkl veut faciliter leur création et surtout leur maintenance en apportant une plus grande expressivité et un mécanisme de validation.

Image Apple.

Les langages statiques comme JSON ou YAML, sans parler des listes de propriétés au format XML largement employées par Apple, ont les inconvénients de leurs avantages. S’ils sont relativement lisibles, ils obligent généralement à répéter le code lorsque la configuration s’allonge, sans intégrer de mécanismes de validation pour éviter les erreurs. Les outils permettant de combler ces lacunes imposent une complexification de la syntaxe à l’opposé de l’objectif premier de ces langages.

Des langages plus généraux peuvent être utilisés pour générer des fichiers de configuration, mais comme ils n’ont pas été spécifiquement conçus pour cet usage, leur manipulation peut se révéler complexe. Pkl tente de résoudre la quadrature du cercle : c’est un langage aussi expressif que JavaScript ou Ruby, qui permet ainsi d’éviter de se répéter, mais spécifiquement pensé pour la rédaction de fichiers de configuration, qui peut ainsi produire aisément du code JSON, YAML ou encore PLIST.

« Nous voulons prendre le meilleur des deux mondes », explique Apple, « proposer un langage déclaratif, simple à lire et écrire, mais enrichi de fonctionnalités empruntées aux langages généralistes. » Pkl propose ainsi des classes, des fonctions et des structures conditionnelles. Les développeurs pourront créer et publier des paquets pour partager leur code, notamment pour intégrer des configurations Pkl aux chaines de production Swift, Go, Java ou Kotlin.

Apple dit avoir voulu concevoir un langage qui « détecte les erreurs de validation avant le déploiement », s’adapte « aux cas d’usage les plus simples comme les plus complexes » et surtout est « un plaisir à écrire grâce à nos excellentes intégrations aux IDE ». Pkl peut effectivement être intégré à IntelliJ, Visual Studio Code et Neovim avec des extensions, mais pas encore Xcode, comme le note malicieusement le développeur Marcin Krzyzanowski.

Pkl semble avoir été construit avec l’aide du framework de constructions de langages Truffle, qui repose lui-même sur le compilateur Java de la distribution GraalVM, l’un comme l’autre développés par Oracle. On comprend bien que ce langage navigue quelque part entre les plateformes d’Apple et l’univers Android. Apple propose une documentation complète avec de nombreux exemples et le code sous licence Apache sur Github.

Source
Image Jonathan Pielmayer (Unsplash). Merci Julien.
avatar dperetti | 

Vous n'avez pas très bien compris de quoi il s'agissait, visiblement.

avatar occam | 

Pkl for pickle, hein ?
Sans aucune référence au module de sérialisation d’objet en Python, qui porte justement ce nom : pickle.
Ils n’ont vraiment honte de rien, chez AAPL.
Ils n’ont même plus le sens des mots : in a pickle signifie en langage courant patiner dans la mélasse, avoir des emmerdes, faire du brouillard dans le biniou.
Sans oublier que « pickle », en slang, est également un terme vulgaire pour désigner le membre masculin tel que Michel-Ange ne l’aurait jamais sculpté, et par extension une tige à fumer du meth.
Plus que la très pudibonde tatie Apple n’en comptait pour son comptant, probablement. Mais il fallait y penser avant.

avatar pecos | 

Si c'est aussi bon par rapport à JSON ou XML que Objective-C par rapport à Swift, moi aussi j'ai hâte d'essayer. ;-)
Et vu les exemples donnés, c'est l'effet que ça fait.

Désolé PetrusM, je suis d'un avis apparemment complètement opposé au tien à propos de Swift/ objective-C, mais, c'est un paradoxe, on arrive quand même à la même conclusion.
ça doit âtre parce que -- = + et que ++ = +. ;-)
Fascinant.

avatar robindumontchaponet | 

Ils ont réinventé HCL ?
https://github.com/hashicorp/hcl

avatar byte_order | 

On est pas loin du syndrôme Not invented Here quand même.
Ce n'est pas comme si y'avait pas déjà des technos permettant de programmer, et même de valider la génération de fichier de configuration.

Une de plus, quoi.

Bon, après, la concurrence c'est bien, que le meilleur gagne, tout ça, hein.

Mais comme souvent les technos d'Apple ont une forte tendance à avoir grand mal à s'échapper du champ gravitationnel du monde Apple, je reste curieux de voir si celle là y arrivera.

Swift n'y est toujours pas réellement arrivé, ObjectiveC avant étant encore plus retenu dans ce champs, Metal c'est encore plus flagrant, AppleScript etc, la liste des technologies de développement conçues par Apple mais qui restent, parfois volontairement d'ailleurs, cantonnées aux seules plateformes d'Apple sont légions.

Hors avoir son employabilité qui dépend du bon vouloir d'un seul acteur qui du jour au lendemain peut décider de tuer une techno dont la maîtrise était votre source de revenu principal, c'est pas forcément une situation d'avenir enviable.

Donc chat échaudé craint l'eau froide, quoi.

avatar fte | 

@byte_order

"On est pas loin du syndrôme Not invented Here quand même."

C’est un machin Apple. On est en plein dans le NIH, plein centre.

avatar Nephou | 

Tout ce qui m’importe c’est de voir que l’intégration dans Neovim est de la partie ! Pour le reste, chers contributeurs, voir ces vieux combats sur la pureté ou la supériorité de tel ou tel langage de programmation me fait sourire amèrement et me désole… il n'y a meilleure expression d'égo bouffi — mes choix sont les seuls valables — ni de meilleure illustration de pourquoi ce milieu professionnel peut-être un vrai repoussoir. Mais ne changez rien hein surtout, on va vous ralentir.

Pages

CONNEXION UTILISATEUR