A comunidade de desenvolvimento de software recebe com entusiasmo o lançamento da primeira versão open source da linguagem de programação Pkl (pronunciada 'Pickle'). Desenvolvida com o propósito específico de criação de configurações, Pkl surge como uma solução inovadora frente aos desafios encontrados em linguagens estáticas tradicionais como JSON, YAML ou Property Lists.
A motivação para a criação de Pkl parte do reconhecimento de que, embora as linguagens estáticas tenham seus méritos, elas tendem a ser limitadas quando a configuração se torna complexa. A repetição de código e a facilidade em cometer erros de configuração, devido à falta de validação intrínseca, são pontos críticos frequentemente observados.
Frequentemente, para contornar esses problemas, ferramentas auxiliares são incorporadas para agregar lógicas especiais às linguagens estáticas, como a capacidade de resolver referências, mesclar objetos ou validar valores de configuração. No entanto, isso acaba transformando o formato em algo que aproxima-se de uma linguagem de programação, porém difícil de compreender e escrever.
Como alternativa, linguagens de propósito geral, como Kotlin, Ruby ou JavaScript, são empregadas no desenvolvimento de DSLs voltadas para a geração de dados de configuração. Ainda que poderosas, essas linguagens podem ser desajeitadas para descrever configurações, por não serem orientadas à definição e validação de dados. Além disso, essas DSLs geralmente são atreladas aos seus próprios ecossistemas, o que dificulta sua adoção em ambientes heterogêneos.
Em resposta a essa lacuna, a Pkl foi idealizada como uma fusão entre uma linguagem estática e uma linguagem de programação de propósito geral. Seu design almeja combinar o melhor dos dois mundos: ser declarativa e de fácil leitura e escrita, com a adição de capacidades emprestadas de linguagens de propósito geral. Com Pkl, espera-se utilizar recursos comuns de programação, como classes, funções, condicionais e laços. A linguagem também permite a construção de camadas de abstração, compartilhamento de código por meio da criação de pacotes e sua publicação.
O mais importante é que a Pkl foi concebida para atender a uma ampla gama de necessidades de configuração, podendo ser usada tanto para produzir arquivos de configuração estáticos em qualquer formato, quanto para ser incorporada como biblioteca em outros ambientes de execução de aplicativos. Três objetivos principais nortearam o design de Pkl: ser expressiva, evitar erros de configuração e ser flexível o suficiente para se adaptar a diversos tipos de necessidades de configuração.
Confira os últimos vídeos publicados no canal