WWWhat's new

Qué es Pkl, el nuevo lenguaje de programación para la configuración

Pkl

Web de Pkl

Pkl se presenta como una innovadora solución al panorama actual de la configuración de software, donde tradicionalmente se han utilizado lenguajes estáticos como JSON, YAML o listas de propiedades. Estos formatos, a pesar de ser ampliamente usados, muestran limitaciones significativas cuando se enfrentan a configuraciones complejas, tales como la repetición de código y la falta de herramientas de validación propias.

He leído la presentación en pkl-lang.org, donde indican que la visión detrás de Pkl es combinar lo mejor de ambos mundos: la simplicidad y legibilidad de los lenguajes estáticos con las capacidades expresivas de los lenguajes de programación generales. Esto se traduce en una herramienta poderosa para definir, validar y modularizar configuraciones de manera más eficiente y segura.

Ejemplos prácticos de uso de Pkl

Veamos para qué podemos usarlo:

Configuración de aplicaciones Web: Un caso de uso ilustrativo de Pkl es la configuración de una aplicación web. A través de Pkl, se puede definir un esquema de configuración detallado que incluya elementos como el hostname, el puerto, el entorno de despliegue y las credenciales de la base de datos. Esto no solo facilita la organización y mantenimiento de la configuración sino que también permite validar automáticamente los datos contra el esquema definido, evitando errores comunes en la configuración.

Generación de configuraciones dinámicas: Pkl destaca en escenarios donde se necesitan generar configuraciones dinámicas. Por ejemplo, al configurar múltiples bases de datos como contenedores secundarios en un entorno local, Pkl permite crear variaciones de la configuración base mediante bucles, generando así configuraciones específicas para cada instancia con mínima repetición de código.

Lectura de recursos externos: La capacidad de Pkl para leer valores de recursos externos, como variables de entorno, simplifica la gestión de secretos y configuraciones sensibles, permitiendo referenciar estos datos de manera segura sin incluirlos directamente en los archivos de configuración.

Validación avanzada: La validación es fundamental en Pkl, permitiendo definir restricciones específicas sobre los datos de configuración, como rangos de edades válidos o formatos de códigos postales. Esto asegura que la configuración no solo sea correcta sintácticamente sino también semánticamente, reduciendo la posibilidad de errores en tiempo de ejecución.

Integración y generación de códigoPkl facilita la integración con otros lenguajes de programación a través de enlaces de lenguaje, permitiendo generar esquemas de configuración como clases o estructuras en lenguajes como Swift, Go, Java y Kotlin. Esto abre la puerta a un flujo de trabajo más integrado y cohesivo entre la configuración y la lógica de aplicación.

Soporte: Finalmente, el soporte de IDE de primera clase para Pkl, incluyendo complementos para IntelliJ y VS Code, mejora significativamente la experiencia de desarrollo, ofreciendo características como autocompletado, navegación y validación en tiempo real. Esto hace que trabajar con Pkl sea no solo más productivo sino también más agradable para los desarrolladores.

Ejemplos de códigos

Los fragmentos de código presentados en el anuncio de Pkl muestran diferentes formas de utilizar este lenguaje de programación orientado a la configuración. A continuación, se detallan las tareas específicas que realizan estos ejemplos:

Definición de una Plantilla de Configuración (Application.pkl)

Este ejemplo define una plantilla de configuración para una aplicación web imaginaria. Utiliza una mezcla de tipos primitivos y clases para especificar la estructura esperada de la configuración:

Este código no produce datos directamente, sino que establece un esquema que se espera que cumplan los datos de configuración.

Definición de Datos de Configuración (localhost.pkl)

Este fragmento muestra cómo se pueden definir datos de configuración concretos que siguen la plantilla anterior:

Esta configuración es específica para un entorno de desarrollo local (localhost), ilustrando cómo Pkl permite definir configuraciones detalladas y seguras al permitir la inclusión de datos sensibles de manera segura mediante el uso de la función read.

Generación de Variaciones de Configuración (sidecars.pkl)

Este ejemplo demuestra cómo generar variaciones de una configuración base utilizando un bucle y la modificación de propiedades:

Este enfoque demuestra la capacidad de Pkl para abstraer configuraciones comunes y generar múltiples configuraciones derivadas con mínimas modificaciones, facilitando la gestión de configuraciones complejas y reduciendo la repetición de código.

Pkl se presenta así como una solución potente y versátil para los desafíos de la configuración en el desarrollo de software, proporcionando una herramienta capaz de adaptarse desde los casos de uso más simples hasta los más complejos con facilidad y eficacia. Parece muy enfocado en seguridad, escalabilidad y satisfacción del desarrollador, ahora solo falta que gane su espacio en el sector.

Salir de la versión móvil